如何告诉JavaScript新的RegExp停止转义我的通配符?我正在创建一个这样的RegExp ......
var matcher = new RegExp('brake*',i');
当我控制台登录matcher var时我得到了
/brake\*/i
我正在尝试创建RegExp,因此它与后面的ANYTHING字匹配。
答案 0 :(得分:2)
明星*
不是通配符。它表示前面标记中的0个或多个。
因此,您当前的模式/break*/
匹配“brea”+ 0或更多次出现的“k”,例如“brea”或“breakkkkkkkkkk”。
您正在寻找代表除换行符之外的任何字符的点.
,然后您可以将其与*
组合以匹配无数个“任意”字符。
所以给了字符串“我今早吃早餐”,模式/break./
将匹配“breakf”,而模式/break.*/
将匹配“今早的早餐”。
const string = 'I ate breakfast this morning'
const pattern = new RegExp('break.*', 'i')
const result = string.match(pattern)
document.querySelector('p').textContent = result
<p>