2014-01-17 73 views
0

我需要一個正則表達式來接受文本字段中的字母和數字。如果用戶只輸入字母或用戶只輸入數字,則不接受。我怎樣才能做到這一點。?正則表達式接受字符串中的數字和字母,但不只是字母

+0

那裏有很多的問題,對SO關於正則表達式 - 搜索他們使用右上方 – Katana24

+0

搜索欄在哪'RegEx'標準? – SOReader

+1

詢問代碼的問題必須證明解決實際問題的最小努力,包括嘗試的代碼和遇到的問題 – HamZa

回答

0

我想有人會寫出更好的正則表達式,然後這一個,但它的工作原理:

^([a-zA-Z]+\d+[a-zA-Z\d]*)|(\d+[a-zA-Z]+[a-zA-Z\d]*)$ 
0
(\d+[A-Za-z]+)|([A-Za-z]+\d+) should work for you. 
"\d" represents a digit which can be out of [0-9]. 

完全在Java中。您可以專門檢查任何其他語言或編輯器。

Pass- 
    123aaa 
    aaa123 

Rejects- 
    123 
    aaa 
+0

'\ w +'應該匹配'aaa','123'和'aa123'。在3中,前2個不被OP接受。 – npinti

+0

權利npinti。根據您的建議更新帖子。謝謝! – Abhishek

+0

但我想接受數字和字母。我不想只有數字或只有字母 – user3201640

1

你可以使用正則表達式象下面這樣:

/^(?=.*\d)(?=.*[a-z])[\da-z]+$/i 

JavaScript示例:

var regex = /^(?=.*\d)(?=.*[a-z])[\da-z]+$/i; 
console.log(regex.test('aaa')); // false 
console.log(regex.test('111')); // false 
console.log(regex.test('aaa111')); // true 
console.log(regex.test('111aaa')); // true 
+0

不工作:( – user3201640

+0

@ user3201640顯示不工作的情況。 – xdazz

0
(?i)(?=[a-z0-9]*[0-9])(?=[a-z0-9]*[a-z])[a-z0-9]* 

將匹配字符串,只有當它至少有一個數字和一個字母。

匹配:

abc1 
123a 

不匹配:

abc 
123 
相關問題