正则表达式 - 使用术语" xx"分割术语

时间:2017-08-25 03:43:29

标签: javascript json regex

当用户在输入栏中输入一个术语时,如果该术语与我的json列表中的内容匹配,则将其拆分为数组。例如,如果用户输入类似" st.mp,st.mp,fireball"数组变为["mp",",","mp",",","fireball"]。还包括逗号,这是有目的的。每个术语都会在我的应用中创建一个图像。

我需要术语" xx"被捕获逗号和" xx"应该分开这些条款。他们应该以同样的方式工作。如果我输入类似" st.mp xx火球"它应该返回["mp","xx","fireball"]

现在我的正则表达式是(\w+( \w+)*|\s)我可以在其中获得带空格的术语(例如,如果我输入"红色火球"它返回["red fireball"])我不是确定要添加什么来捕获" xx"。我认为发生的事情就是当我输入像" st.mp xx fireball"这样的术语时。它抓住了整个东西,它与我的json中的任何东西都不匹配。我仍然是正则表达式的新手。我尝试过的事情的范围很广,从仅仅(xx)\b(xx)我只是迷失在甚至尝试的事情上。

1 个答案:

答案 0 :(得分:1)

单行演示:

"st.mp xx fireball, with space".split(/(?:(,)\s+|\s+(xx)\s+)/)
// -> ["st.mp", undefined, "xx", "fireball", ",", undefined, "with space"]
// filter undefined out then

您可能在错误的方向上使用.split.split的参数应该是分割符