我有一个字符串
let str = 'WordA<br>WordB';
我使用此表达式/(\S+)(?=<br>)/
来匹配<br>
之前的字符。
它可以直接作为预定义函数
工作 let regex = /(\S+)(?=<br>)/;
但是当我尝试使用字符串构建它时,它每次都会提供null
。
let rgs = "(\S+)(?=<br>)";
let regex = new RegExp(rgs);
如何将正则表达式用作字符串以获得相同的结果。
完整代码:
let str = 'WordA<br>WordB';
let regex = /(\S+)(?=<br>)/;
let m = str.match(regex);
console.log(m);
console.log(m[1]);
let rgs = ("(\S+)(?=<br>)");
let regex2 = new RegExp(rgs);
let m2 = str.match(regex2);
console.log(m2);
console.log(m2[1]);
答案 0 :(得分:2)
通过new RegExp()
在字符串中使用正则表达式时,需要转义反斜杠字符:
let str = 'WordA<br>WordB';
let regex = /(\S+)(?=<br>)/;
let m = str.match(regex);
console.log(m);
console.log(m[1]);
let rgs = "(\\S+)(?=<br>)";
let regex2 = new RegExp(rgs);
let m2 = str.match(regex2);
console.log(m2);
console.log(m2[1]);
否则"\S"
将被翻译为“S”(因为您正在转义S
个字符):
console.log("S", "\S", "\\S", "S" === "\S");