2011-03-05 63 views
3

我使用JavaScript RegEx過濾輸入(白名單隻能接受的字符)。由於.match()返回一個數組,我發現將字符串「粘合」回來的最佳方式如下,這看起來很醜陋,因爲我必須刪除逗號。將JavaScript RegEx添加到白名單字符中,我的方法有多糟?

myString.match(/[A-Za-z-_0-9]/g).toString().replace(/,/g,'') 

是否有JS更好的正則表達式的方法,或更好的方式來處理該陣列(例如象在紅寶石。加入)?

感謝 布賴恩

回答

10

有一個JavaScript join爲好。例如:

myString.match(/[A-Za-z-_0-9]/g).join("") 

""是陣列的每個元件之間的分離器,所以[1, 2, 3].join("")"123"給出。但是,您也可以簡單地替換所有字符無法在你的白名單:

myString.replace(/[^A-Za-z-_0-9]/g, "") 

這將直接刪除任何字符不是字母數字,破折號或下劃線。

+0

謝謝。我剛剛找到了.join方法(應該先看看更深一層)。你的RexEx很棒,我忘了^。 – 2011-03-05 17:52:44

相關問題