2017-08-25 70 views
0

當用戶在輸入欄中輸入一個術語時,如果術語與我的json列表中的術語相匹配,它將被拆分爲數組。例如,如果用戶輸入諸如「st.mp,st.mp,fireball」之類的東西,則數組變成["mp",",","mp",",","fireball"]。這些逗號也包括在內。每個術語在我的應用程序中創建一個圖像正則表達式 - 使用術語「xx」的拆分術語

我需要捕獲術語「xx」。逗號和「xx」應該將條款分開。他們應該以同樣的方式工作。如果我輸入「st.mp xx火球」之類的東西,它應該返回["mp","xx","fireball"]

現在我的正則表達式是(\w+(\w+)*|\s)我可以在其中使用空格(例如,如果我輸入「紅色火球」,它將返回["red fireball"])我不確定要添加什麼來捕獲「xx」。我認爲發生的事情是,當我輸入一個像「st.mp xx fireball」這樣的術語時,它捕獲了整個事物,並且與我的json中的任何內容都不匹配。我對於正則表達式仍然陌生。我試過的東西從做(xx)\b(xx)不等,我有點失落甚至想嘗試。

+0

需要它,你只使用正則表達式匹配?你可以使用Javascript .split()函數嗎? – Zack

+0

我正在使用.split()和正則表達式匹配。 – denpa

回答

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帕拉姆應分路器