簡體   English   中英

在RegEx(JavaScript)中正確轉義變量

[英]Properly escape variable inside RegEx (JavaScript)

不想問,但我放棄了:-(我找不到解決方案

我無法得到如何轉義變量/字符串。

var highlight_chars_count = {{highlight_chars_count}};
var regex_string = "/(^\\w{" + highlight_chars_count + "})/";
var regex = new RegExp(regex_string);
$('h1').html(function(i, v) {
    return v.replace(regex, "<span>$1</span>");
});

這種模式有效(沒有“和變量”)

var regex = new RegExp(/(^\w{2})/);

我認為解決方案是在這里JavaScript正則表達式模式連接變量 ...但不能將其轉移到我的正則表達式。

變量{{highlight_chars_count}}是一個樹枝變量。 不幸的是,我無法將變量插入到正則表達式模式中。

您不需要/而且您可以在沒有捕獲組的情況下執行此操作:

var regex_string = "^\\w{" + highlight_chars_count + "}";

然后

return v.replace(regex, "<span>$&</span>"); 
                                ^

請注意,當正則表達式是靜態的(例如var rx = /abc/g )時,使用正則表達式文字表示法聲明正則表達式時,必須使用正則表達式分隔符( /.../ )。 在這里,您使用構造函數表示法

此外, $& backreference指的是整個匹配文本,因此,不需要用捕獲組封裝整個模式。

有關在MDN上使用RegExp正則表達式文字和構造函數表示法的更多信息

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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