正则的扩展
发布时间:2020-12-14 00:41:40 所属栏目:百科 来源:网络整理
导读:RegExp构造函数 new RegExp(/xyz/ig,'i').flags//i默认第二个参数i会覆盖掉原有正则表达式的修饰符 字符串对象共有4个方法,可以使用正则表达式:match(),replace(),search()和split u修饰符含义为Unicode模式,用来正确处理大于uFFF的Unicode字符正确来说
RegExp构造函数 new RegExp(/xyz/ig,'i').flags //i 默认第二个参数i会覆盖掉原有正则表达式的修饰符 字符串对象共有4个方法,可以使用正则表达式:match(),replace(),search()和split u修饰符 含义为Unicode模式,用来正确处理大于uFFF的Unicode字符 正确来说,会正确处理四个字节的UTF-16编码 /^uD83D/u.test('uD83DuDC2A') //false /^uD83D/u.test('uD83DuDC2A') //true 点字符 点字符在正则表达式中,含义是除换行符以外的任意单个字符,对于码点大于0xFFFF的Unicode字符,点字符不能识别必须加上u修饰符。 var s = "123"; /^.$/.test(s);//false /^.$/u.test(s);true Unicode字符表示法 ES6增加了使用大括号表示Unicode字符,这种表示法在正则表达式中必须加上u修饰符,才能识别。 /u{20BB7}/u.test('吉')//true 量词 使用u修饰符之后,所有量词都能正确识别码点大于0xFFFF的Unicode字符 /吉{2}/.test('吉吉') //false /吉{2}/.test('吉吉') //true 预定义模式 u修饰符也影响到预定义模式,能否正确识别码点大于0xFFFF的Unicode字符 'S'是预定义模式,匹配所有不是空格的字符。只有加了u修饰符,才能够正确匹配码点大于0xFFFF的Unicode字符 /^S$/.test('吉') //false /^S$/u.test('吉') //true i 修饰符 有些Unicode字符的编码不同,但是字型很近,比如,u004B与u212A都是大写的K /[a-z]/i.test('u212A') //false /[a-z]/iu.test('u212A') //true y修饰符 全局匹配,后一个匹配都是从上一次匹配成功的下一个位置开始的。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容