美文网首页
3.正则表达式

3.正则表达式

作者: KeithFu | 来源:发表于2016-11-24 11:57 被阅读0次
模式修正符

/i (忽略大小写)
/g (全文查找出现的所有匹配字符)
/m (多行查找)/gi(全文查找、忽略大小写)
/ig(全文查找、忽略大小写)

/u (es6新增ES6对正则表达式添加了u 修饰符,含义为“Unicode模式”,用来正确处理大于 \uFFFF的Unicode字符。也就是说,会正确处理四个字节的UTF-16编码。)

/y (新增,y修饰符的作用与g修饰符类似,也是全局匹配,后一次匹配都从上一次匹配成功的下一个位置开始。不同之处在于,g修饰符只要剩余位置中存在匹配就可,而y修饰符确保匹配必须从剩余的第一个位置开始,这也就是“粘连”的涵义)


对于码点大于0xFFFF 的Unicode字符,点字符不能识别,必须加上u修饰符
 var s = '𠮷';
/^.$/.test(s) // false
/^.$/u.test(s) // true
Unicode字符表示法

如果不加u 修饰符,正则表达式无法识别\u{61} 这种表示法,只会认为这匹配61个连续u

/\u{61}/.test('a') // false
/\u{61}/u.test('a') // true
/\u{20BB7}/u.test('𠮷') // true

/a{2}/.test('aa') // true
/a{2}/u.test('aa') // true
/𠮷{2}/.test('𠮷𠮷') // false
/𠮷{2}/u.test('𠮷𠮷') // true
实用的小例子,返回字符串的真实长度
function codePointLength(text) { 
var result = text.match(/[\s\S]/gu); 
return result ? result.length : 0;
}
var s = '𠮷𠮷';
s.length //4
codePointLength(s) // 2

// 没有找到匹配
'x##'.split(/#/y)
// [ 'x##' ]
// 找到两个匹配
'##x'.split(/#/y)
// [ '', '', 'x' ]

相关文章

  • 正则表达式

    1.正则表达式特殊符号 2.grep命令与正则表达式 grep [options] 3.字符组匹配 pattern...

  • JS库函数~正则表达式及表单、ip验证实例

    本文内容: 1.什么是正则表达式? 2.正则表达式限定符、选择匹配符、字符匹配符 3.常用的正则表达式 4.创建R...

  • Day09 Js continue

    1. 数组 1.1 数组的构造 1.2数组的方法 2.String方法 3.正则表达式 3.1 正则表达式的构造 ...

  • Python正则表达式

    正则表达式是用来简洁表达一组字符串的表达式 1. 正则表达式的常用操作符 2. 经典正则表达式实例 3. Re库使...

  • 正则表达式

    正则表达式 1.正则表达式是一门独立的学科。 2.正则表达式是一种字符模型。专门做字符串格式匹配的。 3.正则表达...

  • 函数式编程进阶

    1.斐波那契序列 2.lambda函数 3.正则表达式

  • 3.正则表达式

    模式修正符 /i (忽略大小写)/g (全文查找出现的所有匹配字符)/m (多行查找)/gi(全文查找、忽略大小写...

  • 3.正则表达式

    1.普通字符 就是普通的a-z,A-z,0-9等等字符。 2.元字符 有一些特殊含义的字符。 每一个语言或平台都可...

  • 3.正则表达式

    正则表达式 什么叫正则表达式 preg_match 正则表达式基本语法 PCRE库函数中,正则匹配模式使用分隔符与...

  • day18-正则表达式

    1.正则表达式语法 代码示例 运行结果 2.正则表达式次数相关符号 代码示例 运行结果 3.分支和分组 1.|分支...

网友评论

      本文标题:3.正则表达式

      本文链接:https://www.haomeiwen.com/subject/lpsbpttx.html