[英]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指的是整個匹配文本,因此,不需要用捕獲組封裝整個模式。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.