This question already has answers here:
How do you use a variable in a regular expression?
                                
                                    (20个答案)
                                
                        
                                4年前关闭。
            
                    
我也尝试使用JavaScript的“替换”功能在某些字符之间的文本周围放置标签。例:

str.replace(/\_(.*?)\_/gi, '<u>$1</u>');


现在可以正常工作,但是我希望将“ _”字符作为变量给出。
例如:

var und = "_";
str.replace(/\und(.*?)\und/gi, '<u>$1</u>');


我的问题是我该怎么做?

提前thnx!

最佳答案

您将需要使用RegExp构造函数从变量构造正则表达式:

var und = "_";
var re = new RegExp(und + '(.*?)' + und, "gi");

var repl = str.replace(re, '<u>$1</u>');

10-05 17:50