修饰符
全局 global;-g
大小写 ignoreCase;-i
是否以多行模式执行模式匹配 mutli-line;-m
// ES5 字面量定义正则
var reg1 = /xyz/i;
// ES5 声明正则
var reg2 = new RegExp("xyz", "i");
// ES5 传参的形式
var reg3 = new RegExp(/xyz/i);
// ES6 传参的形式,支持表达式和修饰符分开传入
var reg4 = new RegExp(/xyz/, "i");
修饰符 y,sticky 粘连的意思,与全局匹配相似,与全局匹配 g(global)的唯一区别就是必须匹配连续的字符,也就是匹配第一个值要粘连第二个值(两个值相同),不然返回 null;
var str = "aaa_aa_a";
var reg1 = /a+/g;
var reg2 = /a+/y;console.(str)); // aaa
console.(str)); // aaaconsole.(str)); // aa
console.(str)); // null
// 错误表示方法
console.log("u20bb7");// 正确表示方法
console.log("u{20bb7}"); // {}表示特殊字符或者特殊汉字
console.log("uD842uDFB7"); // 特殊字符或者特殊汉字,通过4个字节表示一个字符;
console.log(/^uD83D/.test("uD83DuDC2A")); // true
console.log(/^st("uD83DuDC2A")); // false
console.log(/a{2}/.test("aa")); // 量词
console.log(/a{2}/u.test("aa")); // 量词
console.log(/u{20bb7}/u.test("𠮷")); // 字符
ES5 中(.)修饰符,能够匹配除了r(U2020)n(U2029)以外的所以任意字符,但是超出 UTF-16 编码最大范围的字符,并不能匹配
ES2018 中的正则修饰符 s,代表能够匹配任意字符,包括超出 UTF-16 最大编码范围的字符;
var s = "uD842uDFB7"; // 超出UTF-16编码最大返回
console.log(/^.$/.test(s)); // false// ES5
console.log(/foo.bar/.test("foonbar")); // false// ES2018
console.log(/foo.st("foonbar")); // true
获取正则表达式的主体和修饰符
console.log(reg.source); // 正则主体
console.log(reg.flags); // 修饰符
rce 和 flags
获取正则表达式的主体和修饰符
console.log(reg.source); // 正则主体
console.log(reg.flags); // 修饰符
本文发布于:2024-02-04 10:14:19,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170704866954669.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |