[英]Regular Expression from String gives null in Javascript
我有一個字符串
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]);
通過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");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.