javascript jquery regexp替换

我正在尝试创建一个动态搜索栏,我需要帮助。

现在我试图用另一个字符串替换字符串,但我似乎无法成功。

我从用户那里得到了输入:

var location_keyword = $("#si_user_location").val(); 

现在我想用“|”替换空格“” 在我的正则表达式中使用它作为OR。

例如,如果用户写了“土耳其阿拉尼亚”,我希望它是“土耳其|阿拉尼亚”,以便搜索土耳其或阿拉尼亚。

我试过这样的东西,但它没有用

 var location_keyword = $("#si_user_location").val(); location_keyword.replace(" ","|"); var regexp_loc = new RegExp(location_keyword, "i"); 

我之前在PHP中使用以下表达式执行此操作:

 preg_replace('/'.preg_quote($keyword).'/i', "$0", $string) 

我可以像这样替换字符串caseinsensetive,我怎么能在js中这样做?

我使用PHP中的最后一个表达式突出显示结果中的关键字,我想在js中做。

希望我能得到一些帮助,在此先感谢! 🙂

最好的问候,亚历山大

在这一行使用replace有两个问题:

 location_keyword.replace(" ","|"); 
  • 它不会修改字符串 – 它会返回一个新字符串。 您需要将调用结果重新分配给原始变量,否则您将看不到更改的字符串。
  • 它只替换第一次出现,除非您使用带有g (全局)标志的正则表达式。

试试这个:

 location_keyword = location_keyword.replace(/ /g, '|'); 

试试这个:

 location_keyword = location_keyword.replace(/ \ s + /,“|”);

这应该工作正常:

 location_keyword.replace(/ /g,"|"); 

希望这可以帮助! 🙂