2016-09-24 23 views
0

如何編寫只接受單詞或字母並將它們拆分爲,的正則表達式?正則表達式只接受變量名稱

我已經試過array = input.replace(/ /g, '').split(','),但隨後h-e,a<y將成爲['h-e','a<y']我想只接受變量,所以我想h-e,a<y應該成爲['he','ay']

難道是像

array = input.replace(/[\s|^\w]/g, '').split(',') 
+0

你是什麼意思的「單詞」和「字母」?你的標題是指「變量名稱」 - 你的意思是JavaScript變量名稱?它們可以包括不是「字母」的美元符號和下劃線。你談論「接受」,但你的問題的描述似乎是關於「轉化」。請澄清,謝謝。 – 2016-09-24 05:09:03

+0

我很抱歉。我的意思是單詞(包括1個字符的單詞,這就是我的意思是字母) – Jamgreen

回答

0

您可以使用此正則表達式來找到所有你想從您的字符串中刪除字符:

array = input.replace(/[-><?.:;]*/ig, '').split(',') 

你會取代所有的字符在 - 的裏面 [ ]。

+0

但我不知道使用哪些字符可能會輸入。我只是想確保我得到的單詞(包括1個字符的單詞) – Jamgreen

+0

我認爲您需要爲變量名稱找到模式,因爲您可能會遇到以下情況:my-var-other-number ..可能導致什麼結果在my-var-other-number或my-var-other-number中。所以如果你有變量之間的空格將是完美的,如果沒有,我認爲你必須以其他方式思考,因爲這是不可能的。例如找到每個變量的所有文件變量。所以如果你找到我的-var 4次,意思就是這個名字,對吧? – damianfabian

0

拆分,然後再刪除字符不允許的:

input.split(,).map(fix) 

其中

function fix(s) { 
    return s.replace(/[^\w$]/g, ''); 
} 

另一種方法就是抓住你想要的字符,而不是扔掉那些你不這樣做:

function fix(s) { 
    return s.match(/[\w$]/g).join(''); 
} 

其實這並不完全正確,因爲JavaScript變量名也可以co不含Unicode等字符,如Σ。此外,這不會修復JavaScript變量名稱不能啓動的前導數字字符。