簡體   English   中英

來自字符串的正則表達式在 Javascript 中給出 null

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM