let m = "a"; console.log(eval(`/${m}/`).test(ad)) //true
对象创建
1 2 3 4 5 6
let ad = "yi1024chang8421";
let m = "a";
let reg = newRegExp(m,"g"); console.log(reg.test(ad)); //true
参数细节:
RegExp(pattern,[, flags])
pattern: 正则表达式的文本
[, flags]: 指定要匹配的范围。参数值可以是:
g 全局匹配
i 忽略大小写
m 多行匹配
s 点号匹配所有字符
u unicode
y sticky,粘性匹配
举例:支持正则表达式的样式替换小程序
html:
1 2 3
<divclass="content"> yichang8421.github.io </div>
JavaScript:
1 2 3 4 5 6 7 8 9 10
let con = prompt("请输入要检测的内容,支持正则"); let reg = newRegExp(con,"g"); let div = document.querySelector("div"); div.innerHTML = div.innerHTML.replace(reg,search =>{ return(` <span style="color:red"> ${search} </span> `); });
console.log("\d+\.\d+"); // "d+.d+" let reg = newRegExp("\d+\.\d+"); console.log(reg.test(price)); // false
解决办法是 “\” 再加 \, 表示 给 “\” 添加转义,告诉字符串不要忽略 “\“
1 2 3
console.log("\d+\.\d+"); // "\d+\.\d+" let reg = newRegExp("\d+\.\d+"); console.log(reg.test(price)); // true
字符串边界约束
^ 表示以其后匹配字符开始;$ 表示以其前匹配字符结尾。
举例:限制输入 3-6 位字母,匹配成功则响应 “成功”,匹配失败则响应 “失败”。
html:
1 2 3
<body> <inputtype="text"name = "user"/> </body>
JavaScript:
1 2 3 4 5 6
document .querySelector("[name='user']") .addEventListener("keyup",function(){ let flag =this.value.match(/^[a-z]{3,6}$/); document.querySelector("span").innerHTML = flag?"成功":"失败"; });