首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

正则exec跟match的区别

一、 exec match分别是谁家的方法 exec是RegExp类的方法 match是String类的方法 分清楚是各是哪里的方法之后,就知道怎么使用了 栗子: /hello/.exec('hello...match 是否返回所有匹配的数组跟正则表达式是否带着g有关系 const str = 'd3aish hello world d5aisy'; const reg = /\dai/...; // 先看没有g的情况 console.log(str.match(reg)); console.log(reg.exec(str)); // 这时候就会返回同一个数组['3ai'],原因是第一个...(str)); //这时候第一个就会返回['3ai','5ai'],而第二个就会返回跟上面一样的['3ai'],结果符合预期 那什么情况下match的结果会跟exec一样呢,对正则的要求是 不带g呗~..."2","1"] 总的来说,exec跟match的区别有两点,首先是不同类的方法, 其次是否跟g有关。

1K20

基础 | 正则exec跟match的区别

一、 exec match分别是谁家的方法 exec是RegExp类的方法 match是String类的方法 分清楚是各是哪里的方法之后,就知道怎么使用了 栗子: /hello/.exec('hello...world'); 'hello world'.match(/'hello'/); 二、 区别 简单来说,跟g有关系 exec 只会匹配第一个符合的字符串(意味着g对其不起作用),跟所有分组的反向引用...match 是否返回所有匹配的数组跟正则表达式是否带着g有关系 接下来看看有g的情况下 那什么情况下match的结果会跟exec一样呢,对正则的要求是 不带g呗~ 还是举个栗子 这段代码两个函数都返回...["version2.1","version","2","1"] 总的来说,exec跟match的区别有两点,首先是不同类的方法, 其次是否跟g有关。

70720

js 函数柯化(Currying)

从一道面试题谈谈函数柯化从一道面试题谈谈函数柯化 题目:使用 js 实现 add(1)(2)(3)(4) 返回 10 函数柯化要求多个参数转为单一参数,所以相当于 function add()...那么有什么方法可以解决呢?? 当然有了,在 js 中函数是有原型链的,所以每个函数都继承了基本的一些方法。 当你定义一个函数后,你如果打印时只输入函数名,并不执行,则函数内部信息就被打印出来。...那么我们可以重写这个方法,来在结束后执行。...函数的 toString 方法可以打印函数体,所以我们改造下,让 toString 返回结果 //首先我们需要一个入口函数进行基本处理 var add = function (value) {...结束 通过上面的研究,解决一个函数柯化问题。

1.5K20

JS中的柯

作为函数式编程语言,JS带来了很多语言上的有趣特性,比如柯化和反柯化。 这里可以对照另外一篇介绍 JS 反柯化 的文章一起看~ 1....柯化的常见用法 3.1 参数复用 通过柯方法,缓存参数到闭包内部参数,然后在函数内部将缓存的参数与传入的参数组合后apply/bind/call给函数执行,来实现参数的复用,降低适用范围,提高适用性...参看以下栗子,官员无论添加后续老婆,都能和合法老婆组合,通过柯方法,getWife方法就无需添加多余的合法老婆... var currying = function(fn) { var args...Function.prototype.bind 方法也是柯化应用 与 call/apply 方法直接执行不同,bind 方法将第一个参数设置为函数执行的上下文,其他参数依次传递给调用方法(函数的主体本身不执行...高级程序设计 JS中的柯化(currying) 前端开发者进阶之函数柯化Currying 浅析 JavaScript 中的 函数 currying 柯化 掌握JavaScript函数的柯化 函数式

4.5K20

js 高阶函数之柯

博客地址:https://ainyi.com/74 定义 在计算机科学中,柯化(Currying)是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数且返回结果的新函数的技术...就是只传递给函数某一部分参数来调用,返回一个新函数去处理剩下的参数(==闭包==) 常用的封装成 add 函数 // reduce 方法 const add = (...args) => args.reduce...当然也可以使用惰性函数来处理,本例最后一个方案会介绍 我们看下面的这个例子,在 DOM 中添加事件时需要兼容现代浏览器和 IE 浏览器(IE < 9),方法就是对浏览器环境进行判断,看浏览器是否支持,...isArray([1, 2, 3]) // true isNumber(123) // true isString('123') // true 但是上面方案有一个问题,那就是每种类型都需要定义一个方法...a", "b", "c"] fn("a")("b", "c") // ["a", "b", "c"] 上面使用的是 ES5 和 ES6 的混合语法 那如果不想使用 call/apply/bind 这些方法

2.7K40

MongoDB系列之Docker运行JS脚本

0ac56ae108c0 为容器ID docker exec -it 0ac56ae108c0 bash 因为要执行一大串的脚本,黏贴到shell窗口里,就要很长时间,所以问题来了,直接复制一大串代码执行的方法太慢了...,只能看看能不能用命令执行文件,将代码弄到一个js文件,然后用命令执行 先从MongoDB数据库导出js脚本,然后在js脚本文件,在其最前面加上连接数据库的代码: conn = new Mongo(..."127.0.0.1:27017"); db = conn.getDB("test"); 然后保存,使用docker命令复制js文件到MongoDB容器 docker cp /opt/test.js...0ac56ae108c0:/opt/test.js 然后使用mongo命令执行js脚本,注意是要到MongoDB容器执行 # 到/opt目录 cd /opt # 执行js脚本 mongo test.js...js代码里加上连接MongoDB的代码,然后docker复制文件到MongoDB容器,在使用命令直接执行js文件,速度很快

1.6K30

温泉挣扎的set()方法

一直以来,JS 只能使用数组和对象来保存多个数据,缺乏像其他语言那样拥有丰富的集合类型。因此,ES6 新增了两种集合类型 set 和 map,用于在不同的场景中发挥作用。...内部会认为这条数据跟前面的数据重复 result.add(2);//无效代码,Set内部会认为这条数据跟前面的数据重复 console.log(result); 执行结果: 这里面有个细节大家要注意...我们手写的 set 方法跟浏览器提供的 set 对比的话肯定是不一样的,因为浏览器在实现 ES 标准的时候,它是可以调用底层资源的,比如说可以直接操作内存,它的效率要比我们手写的 set 方法效率高些...1、新建 mySet.js 文件 class MySet { //构造函数里面参数可传可不传,给参数一个默认值就可以了 constructor(iterable = []) {...)); console.log("差集:",result); 执行结果: 代码测试:add、has、delete、clear <script src="<em>js</em>

70010
领券