RegExp构造函数
new RegExp(/xyz/ig,'i').flags //i 默认第二个参数i会覆盖掉原有正则表达式的修饰符
字符串对象共有4个方法,可以使用正则表达式:match(),replace(),search()和split
u修饰符 含义为Unicode模式,用来正确处理大于\uFFF的Unicode字符 正确来说,会正确处理四个字节的UTF-16编码 /^\uD83D/u.test('\uD83D\uDC2A') //false /^\uD83D/u.test('\uD83D\uDC2A') //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修饰符 全局匹配,后一个匹配都是从上一次匹配成功的下一个位置开始的。