[英]Create Regex from a string variable in javascript
var tags=["div","span","body"];
for (i=0; i<=tags.length; i++){
source = source.replace(/\<\;<tags[i]/i, '<span class="tags[i]"><tags[i]</span>');
}
基本上,我試圖將所有開頭的div,span和body標簽放在一個span上,並相應地設置一個類。 但是,我在將變量放入其中時遇到問題。
我可以為每個不同的標簽放置行和行,但是考慮到每次按鍵時都要調用此功能,因此我希望保持代碼盡可能小和高效。
還是還有其他選擇? 我的意思是,如果有可能遵循這些方針,那就更好了:
source = source.replace(/\<\;<div|<span/i, '<span class="div|span"><div|span</span>');
但是,它顯然無法帶我到任何地方。
您可以使用RegExp對象從字符串構造正則表達式:
source = source.replace(new RegExp("\\<\\;<" + tags[i], "i"), '<span class="' + tags[i] + '"><' + tags[i] + '</span>');
但是您也可以通過捕獲標簽並在替換中引用它來實現替代方案:
source = source.replace(/\<\;<(div|span|body)/i, '<span class="$1"><$1</span>');
您可以在| (equivalent of OR)
使用正則表達式| (equivalent of OR)
| (equivalent of OR)
:( ()
用於獲取匹配的元素(div,span或body),您可以使用$1
來獲取它們
source.replace(/<(div|span|body)/i,'<span class="$1"><$1></span>')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.