2014-11-06 69 views
0

我想做兩件事情來清理字符串,第一個是刪除任何空間,並用逗號分隔符取代它,第二個是刪除任何非字母數字字符(不包括逗號);我的第一部分功能,但現在我無法弄清楚如何去除特殊字符,以及:JavaScript的正則表達式來移除特殊字符,並刪除多餘的空格,同時留下逗號

$("#fancydiv").keyup(function(e) { 
    var str = this.value.replace(/(\w)[\s,]+(\w?)/g, '$1,$2'); 
    if (str!=this.value) this.value = str; 
}); 
+0

不確定你的第一部分是否正確。用'「a,b,c,d,e,f」'作爲輸入,結果爲'「a,b,c,d,e,f」'。 – gawi 2014-11-06 13:28:36

回答

1
'?no, special-characters!'.replace(/[^\w,]/g, '') 
// => "no,specialcharacters" 

[^\w,]將匹配不匹配字母,非數字,不包含逗號的非下劃線字符。

+0

我最終這樣做了,謝謝! (/ [\ w,]/g,'$ 1,$ 2')。 「); – crunch 2014-11-06 13:28:21

0

試試這個:

var str = this.value.replace(/\s/g, ',').replace(/[^\w,]/g, ''); 
+0

'a,b'會變成'a ,,, b'。我不認爲這是OP想要的。 – gawi 2014-11-06 13:30:36

+0

嗯,我想這正是OP要求的 - 「第一個是刪除任何空格並用逗號分隔符替換它」...空字符串是否也是一個單詞沒有在問題中定義,以及要做什麼與逗號之間的空格。但是,是的,他可能只需要在真正的單詞之間使用一個逗號。 – 2014-11-07 14:31:30

相關問題