javascript jquery regexp替换

时间:2011-03-02 20:08:59

标签: javascript jquery regex replace

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

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

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

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', "<span>$0</span>", $string)

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

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

希望我能得到一些帮助,谢谢! :)

最好的问候, 亚历山大

3 个答案:

答案 0 :(得分:3)

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

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

请改为尝试:

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

答案 1 :(得分:1)

试试这个:

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

答案 2 :(得分:0)

这应该可以正常工作:

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

希望这有帮助! :)