我正在讀取一些文本,並希望將它分割成一個數組。我的目標是能夠將它分成由停用詞(被搜索引擎忽略的詞,如'a'''等)分隔的短語,以便我可以在我的API中搜索每個單獨的短語。因此,例如:'The cow's hat was really funny'
將導致arr[0] = cow's hat
和arr[1] = funny
。我已經有一組停用詞了,但是我無法真正想到如何實際上通過其中的每個/任何單詞進行實際分割,而無需編寫一個非常慢的函數來遍歷每個單詞。用Javascript中的單詞分割字符串
1
A
回答
2
使用split()
。它需要一個正則表達式。下面是一個簡單的例子:
search_string.split(/\b(?:a|the|was|\s)+\b/i);
如果你已經擁有的停止字陣列,可以使用join()
建立正則表達式。請嘗試以下操作:
regex = new RegExp("\\b(?:" + stop_words.join('|') + "|\\s)+\\b", "i");
工作示例http://jsfiddle.net/NEnR8/。 注意:它可能是最好的替換這些值比分裂它們,因爲有空數組元素從這個結果。
1
快速和骯髒的方式將取代「停止詞」具有一些獨特的字符(例如& & &)字符串,然後根據這一獨特性格分裂。
例如。
var the_text = "..............",
stop_words = ['foo', 'bar', 'etc'],
unique_str = '&&&';
for (var i = 0; i < stop_words.length; i += 1) {
the_text.replace(stop_words[i], unique_str);
}
the_text.split(unique_str);
2
這對您的關鍵字不區分大小寫.split()
,由字邊界包圍。
var str = "The cow's hat was really funny";
var arr = str.split(/\ba\b|\bthe\b|\bwas\b/i);
您最終可能會在Array中出現一些空項目。爲了壓縮它,你可以這樣做:
var len = arr.length;
while(len--) {
if(!arr[len])
arr.splice(len, 1);
}
+0
+1用於壓縮數組,這是使用'split()'解決方案的問題。 – 2010-11-12 20:42:14
相關問題
- 1. 查找單詞和分割字符串
- 2. 基於單詞分割字符串
- 3. 分割字符串由大寫單詞
- 4. 分割字符串後得到單詞
- 5. 用JavaScript分割字符串
- 6. 將字符串分割成Ocaml中的單詞字符列表
- 7. javascript,分割字符串,並顯示一個單詞的大膽
- 8. 使用單詞作爲分隔符分割字符串
- 9. 的Javascript:分割字符串
- 10. JavaScript的分割字符串
- 11. 的Javascript分割字符串
- 12. 如何用JavaScript正則表達式分割字符串中的單詞?
- 13. Javascript字符串分割
- 14. Javascript字符串分割
- 15. 如何在php中用單詞分割字符串?
- 16. 分割字符串中的單詞的Java
- 17. 分割字符串,並添加連字符單詞之間
- 18. 使用單詞作爲C++中的分隔符來分割字符串
- 19. 使用javascript的分割字符串
- 20. 的Javascript分割字符串用空格
- 21. 分割單詞的第一個字符
- 22. 的Makefile如何分割字符串爲單個單詞?
- 23. 分割包含單詞和數字的字符串
- 24. 用javascript分割字符串2次
- 25. 分割字符串數組使用javascript
- 26. 使用Javascript - 字符串分割
- 27. 使用JavaScript字符串分割
- 28. 使用javascript分割地址字符串
- 29. 分割字符串,並使用JavaScript
- 30. 在javascript中分割字符串
這很完美,不知道'split()'帶了一個正則表達式,謝謝。 – pettazz 2010-11-12 20:15:37
是單個字符的助手。我已經更新了我的答案以包含單詞邊界。 – 2010-11-12 20:21:13
傑森 - 你的答案不起作用。 – user113716 2010-11-12 20:26:23