2012-03-19 45 views
0

我想知道如何將一個長字符串拆分爲一組單詞。 我想忽略/刪除所有非alphabethic字符。如何拆分JavaScript字符串,只留下字符

例如: 如果我有下一個字符串:「free games @ somewhere,visit us。不想錯過?

我希望它被分割爲: 「免費,遊戲,某處,訪問,我們,不要,想要,錯過,出去,然後,去,前進,訪問,我們,某處,到,下載,從「

最後我會有一個數組大小20,在每個單元格它擁有上述一個單詞。

回答

2

嘗試:


var chk = str.split(/[^a-z']+/i); 
console.log(chk); 
+0

你不必逃避'''。 – bezmax 2012-03-19 10:01:41

+0

是..改變了 – 2012-03-19 10:02:11

0

這應該工作:

str = "free games @ somewhere, visit us. don't want to miss out?, then go ahead & visit us @ somewhere-to-download-from."; 
str = str.replace(/[^a-z]/gi," ").replace(/ {1,}/g," ").split(" "); 
document.write(str); 
+0

可以簡化正則表達式的該鏈與一個簡單'str.split(/ [^ AZ] +/I)' – bezmax 2012-03-19 09:59:08

+0

我正在考慮多個連續空格,避免split()返回空數組元素。 – 2012-03-19 10:01:21

+0

這就是爲什麼我的表達中有'+',它確實如此。 – bezmax 2012-03-19 10:02:19

1

使用JavaScript split功能使用正則表達式。例如:

var str = "free games @ somewhere, visit us. don't want to miss out?, then go ahead & visit us @ somewhere-to-download-from."; 
alert(str.split(/[^a-z]+/i)); 
+0

另外,我認爲你需要將它改成'/ [^ a-z'] +/i'(注意'''),因爲'不'在分裂的時候不應該分裂。 – bezmax 2012-03-19 10:00:55

+0

謝謝,作爲魅力工作。 – Alon 2012-03-19 10:25:15

+0

如何刪除結果中的「,」?我注意到,當我確實警覺(thearray);我將詞語分割爲「,」並添加到每個單詞的末尾,我如何刪除它? – Alon 2012-03-19 10:57:14

0
function specialSplit(str){ 
    var reqArray = new Array(); 
    var len = str.length; 
    var tempStr = ""; 
    for(var i=0;i<len;i++){ 
     if(str[i].search(/[a-zA-Z']/)==0){ 
      tempStr = tempStr + str[i]; 
     } 
     else if(tempStr.length > 0){ 
      reqArray.push(tempStr); 
      tempStr = ""; 
     } 
    } 
    return reqArray; 
} 
相關問題