我正在尝试创建一个动态搜索栏,我需要帮助。
现在我试图用另一个字符串替换字符串,但我似乎无法成功。
我从用户那里得到了输入:
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中做。
希望我能得到一些帮助,谢谢! :)
最好的问候, 亚历山大
答案 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,"|");
希望这有帮助! :)