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,"|");
希望这可以帮助! 🙂