-
构造函数方法匹配is单词: \\写了两次是因为在js中\是特殊字符,使用需要转义; 第二个参数表示g全局搜索查看全部
-
g:global全文搜索,不添加,搜索到第一个匹配停止查看全部
-
字面量方法匹配is单词: '\b':代表单词边界,如/\bis\b/会匹配一句话中的is这个完整的单词,不会匹配某个单词中的含有的is; 正则表达式写在一对/../中查看全部
-
Regexp对象:查看全部
-
正则表达式的概念:查看全部
-
`a1b2c3d4e5f6g7`.replace(/\d/g, (match, index, origin)=>{ console.log(index); for(match of origin){ console.log(match); } return parseInt(match) + 1; });查看全部
-
`a1b2c3d4e5f6g7`.replace(/\d/g, (match, index, origin)=>{ console.log(index); return parseInt(match) + 1; });查看全部
-
## String.prototype.replace() https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/String/replace replace() 方法返回一个由替换值替换一些或所有匹配的模式后的新字符串。 模式可以是一个字符串或者一个正则表达式, 替换值可以是一个字符串或者一个每次匹配都要调用的函数。 语法 str.replace(regexp|substr, newSubStr|function) 参数 regexp (pattern) 一个 RegExp 对象或者其字面量。该正则所匹配的内容会被第二个参数的返回值替换掉。 substr (pattern) 一个要被 newSubStr 替换的字符串。其被视为一整个字符串,而不是一个正则表达式。仅仅是第一个匹配会被替换。 newSubStr (replacement) 用于替换掉第一个参数在原字符串中的匹配部分的 字符串。该字符串中可以内插一些特殊的变量名。参考下面的使用字符串作为参数。 function (replacement) 一个用来创建新子字符串的函数,该函数的返回值将替换掉第一个参数匹配到的结果。参考下面的指定一个函数作为参数。 返回值 一个部分或全部匹配由替代模式所取代的新的字符串。查看全部
-
`a1b2c3d4e5f6g7`.split(/\d/g); ["a", "b", "c", "d", "e", "f", "g", ""] `a1b2c3d4e5f6g7`.split(/[^\d]/g); ["", "1", "2", "3", "4", "5", "6", "7"] "a,b,c,d,e,f,g,1,2,3,4,5,6,7".split(","); "a,b,c,d,e,f,g,1,2,3,4,5,6,7".split(","); ["a", "b", "c", "d", "e", "f", "g", "1", "2", "3", "4", "5", "6", "7"] "a,b,c,d,e,f,g,1,2,3,4,5,6,7".split(/,/g) ["a", "b", "c", "d", "e", "f", "g", "1", "2", "3", "4", "5", "6", "7"]查看全部
-
字符串 => 数组 split()查看全部
-
match查看全部
-
search查看全部
-
## RegExp.prototype.exec() https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/RegExp/exec exec() 方法在一个指定字符串中执行一个搜索匹配。 返回一个结果数组或 null。 如果你正在执行一个匹配只是为了找到 true或 false,可以使用 RegExp.test() 方法,或者 String.search() 方法。 regexObj.exec(str) str 要匹配正则表达式的字符串。 如果成功匹配,exec() 方法返回一个数组并更新正则表达式对象的属性。返回的数组具有匹配的文本作为第一项,然后匹配的每个捕获括号的一个项包含捕获的文本。 如果匹配失败,exec() 方法返回 null。 index 匹配到的字符位于原始字符串的基于0的索引值 input 原始字符串查看全部
-
## lastIndex bug??? http://www.imooc.com/video/12537 g test() lastIndex bug??? 执行多次,结果不一致! let regex = /\w/; let regexg = /\w/g; regexg.test("abc"); let regexg = /\w/g; regexg.test("abc"); true regexg.test("abc"); true regexg.test("abc"); true regexg.test("abc"); false regexg.test("abc"); true regexg.test("abc"); true regexg.test("abc"); true regexg.test("abc"); false ## lastIndex bug??? 当前匹配结果的的最后一个字符的下一个字符位置, 首先匹配到a,a是当前匹配结果,最后一个字符仍是a, a的位置是0,true,下一个字符位置是1, b的位置是1,true,下一个字符位置是2, c的位置是2,true,下一个字符位置是3, ?的位置是3,false,下一个字符位置是0,查看全部
-
当前匹配结果的的最后一个字符的下一个字符, 首先匹配到a,a是当前匹配结果, 最后一个字符仍是a,a的位置是0, 下一个字符位置是1, 所以第一遍返回1 同理b为1,下一个字符位置为2查看全部
举报
0/150
提交
取消