2010-08-17 158 views
1

我正在研究Java腳本,爲此我需要使用正則表達式來檢查文本框中輸入的文本是否應該是字母和數字值的組合。字母+數值的正則表達式

我嘗試了java腳本的NaN函數,但字符串應該是最小尺寸的&最大長度爲4,並且以字母表作爲第一個元素,其餘3個元素應該是數字。

例如:A123,D456,A564並沒有對正則表達式(AS23,1234,HJI1)

請建議我!

代碼這裏:

<script type="text/javascript"> 
    var textcode = document.form1.code.value; 
    function fourdigitcheck(){ 
    var textcode = document.form1.code.value; 
    alert("textcode:"+textcode); 
    var vmatch = /^[a-zA-Z]\d{3}$/.test("textcode"); 
    alert("match:"+vmatch); 
    } 
</script> 
<form name="form1"> 
Enter your Number <input type="text" name="code" id="code" onblur="fourdigitcheck()" /> 
</form> 
+0

** **的Javascript具體:HTTP:// WWW。 javascriptkit.com/jsref/regexp.shtml – 2010-08-17 12:26:45

+0

修改後,第6行:var vmatch = /^[a-zA-Z]\d{3}$/.test("textcode「); 必須更改:var vmatch = /^[a-zA-Z]\d{3}$/.test(textcode); – 2010-08-17 12:41:18

+0

change:var vmatch = /^[a-zA-Z]\d{3}$/.test("textcode「); 發送至:var vmatch = /^[a-zA-Z]\d{3}$/.test(textcode); 它會正常工作。請參閱:http://jsfiddle.net/E2Kfr/ – Floyd 2010-08-17 13:07:58

回答

0

小例子:

<html> 
<head> 
</head> 
<body> 
<form id="form" name="form" action="#"> 
    <input type="text" onkeyup= 
    "document.getElementById('s').innerHTML=this.value.match(/^[a-z]\d\d\d$/i)?'Good':'Fail'" 
    /> 
    <span id="s">?</span> 
</form> 
</html> 
3

正則表達式:

var match = /^[a-zA-Z][0-9]{3}$/.test("A456"); // match is true 
var match = /^[a-zA-Z][0-9]{3}$/.test("AB456"); // match is false 

http://www.regular-expressions.info/javascriptexample.html - 有一個在線測試工具,您可以檢查是否正常工作沒事。

+0

KennyTM ..你有權利,因爲它的匹配是「B456」 – Floyd 2010-08-17 11:39:30

+0

對不起!這個版本應該沒問題。 – 2010-08-17 11:42:32

1

/[AZ] [0-9] {3}/

4
^[A-Z]{1}\d{3}$ 

或更短

^[A-Z]\d{3}$ 

描述:

// ^[A-Z]\d{3}$ 
// 
// Assert position at the start of the string or after a line break character «^» 
// Match a single character in the range between "A" and "Z" «[A-Z]» 
// Match a single digit 0..9 «\d{3}» 
// Exactly 3 times «{3}» 
// Assert position at the end of the string or before a line break character «$» 

測試:

/* 
A123 -> true 
D456 -> true 
AS23 -> false 
1234 -> false 
HJI1 -> false 
AB456 -> false 
*/ 
+0

他沒有說任何關於首字母大寫的東西(儘管所有的例子都這樣):'/^[a-z] \ d {3} $/i' – Amarghosh 2010-08-17 11:44:14

+0

對不起,親愛的,它不工作! – Rubyist 2010-08-17 12:05:30

+0

@Rahul _dear_,正則表達式是正確的 - 發佈你用來測試它的代碼。 – Amarghosh 2010-08-17 12:19:27

1

如果你想同時大寫和小寫字母,然後/^[A-Za-z][0-9]{3}$/

否則,如果字母是大寫然後/^[A-Z][0-9]{3}$/