我正试图在javascript函数中获取搜索词。我需要按以下格式输出搜索字词:
原始
search term 1,searchte.rm 2abc ,, , searchterm3
期望输出:
search term 1&searchte.rm 2abc&searchterm3
基本上,我想“获取”搜索字词之间的逗号和空格,并将它们转换为简单的&
。
我试过的正则表达式是/[-'"\w\s.]+/g
,它获取实际的搜索词,而不是中间的空格。 /[,]+/g
获取逗号,但我不知道如何使用正则表达式有条件地获得“多个空格加逗号”或“多个逗号加空格”。
什么正则表达式会使上面的代码输出正确?有没有我在这里没想到的用例?
答案 0 :(得分:3)
试试/\s*,[,\s]*/
。这匹配任意数量的初始空格,后跟至少一个逗号,然后是任意数量的空格或逗号。
答案 1 :(得分:1)
请尝试以下操作:
> 'search term 1,searchte.rm 2abc ,, , searchterm3'.replace(/\s*,[,\s]*/g, '&')
"search term 1&searchte.rm 2abc&searchterm3"