2014-01-16 49 views
2

我需要一個正則表達式來測試字符串。 該字符串只能包含英文字母,數字,連字符和下劃線。如何使用正則表達式在javascript中過濾中文字符

以前我有一個測試一個字符串是否只包含正數(包括零);我用:

if(!/^\d+$/.test(number)) { 
    alert('..bla'); 
} else { 
    return true; 
}; 

所以我想要一個類似的。我已閱讀:

Regular expressions and Chinese;

and Regex Letters, Numbers, Dashes, and Underscores;

但這兩個似乎並沒有解決我的問題。

!/[a-zA-Z0-9\-\_]+$/.test('_-bla') // return false 
    !/[a-zA-Z0-9\-\_]+$/.test('_-bl我a') // return false 
    !/[a-zA-Z0-9\-\_]+$/.test('_-bl我') // return true 
    !/[a-zA-Z0-9\-\_]+/.test('_-bl我') // return false 
    !/[a-zA-Z0-9\-\_]+/.test('_-bl我a') // return false 

在此先感謝。 :)

+0

你見過? http://stackoverflow.com/questions/10067963/find-a-regular-expression-to-check-letter-chinese-character-and-slash –

+0

@Tun Zarni Kyaw謝謝。但是這有點困難。 – shrekuu

回答

3

使用^[-\w]+$\w符合數字,字母,_

/^[-\w]+$/.test('_-bla') // true 
/^[-\w]+$/.test('_-bl我a') // false 
/^[-\w]+$/.test('_-bl我') // false 
/^[-\w]+$/.test('_-bl我') // false 
/^[-\w]+$/.test('_-bl我a') // false 
+0

謝謝。我添加了'$',但我忘記了'^'。 :P。我沒有15個聲望,所以我不能投票。對不起。 – shrekuu

+0

@Shrek,沒問題。 – falsetru

2

我假設你正在尋找這個輸出。添加脫字符號(^)表示字符串的開始和($)意思是字符串的結尾到正則表達式。

/^[a-zA-Z0-9_-]+$/.test('_-bla'); // True 
/^[a-zA-Z0-9_-]+$/.test('_-bl我a'); // False 
/^[a-zA-Z0-9_-]+$/.test('_-bl我'); // False 
/^[a-zA-Z0-9_-]+$/.test('_-bl我'); // False 
/^[a-zA-Z0-9_-]+$/.test('_-bl我a'); // False 

你可以使用\w代替它匹配單詞字符(a-zA-Z0-9_

/^[\w-]+$/ 
+0

謝謝。你的想法和上面的一樣。我會投票直到我獲得15點聲望。再次感謝。 :) – shrekuu

相關問題