我有一根绳子
let str = 'WordA<br>WordB';
我使用这个表达式/(\S+)(?=<br>)/来匹配<br>前面的字符。
它作为一个预定义函数直接工作得很好。
let regex = /(\S+)(?=<br>)/;
但是,当我尝试使用字符串构建它时,它每次都会给出null。
let rgs = "(\S+)(?=<br>)";
let regex = new RegExp(rgs);如何将regex用作字符串以获得相同的结果。
完整代码:
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]);
发布于 2017-10-29 09:52:02
当通过new RegExp()在字符串中使用regex时,需要转义反斜杠字符:
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");
https://stackoverflow.com/questions/46998765
复制相似问题