一個10位數的電話號碼,我與dojo1.7工作,在這裏,我正在尋找一個簡單的正則表達式或範圍/地方,這將驗證10位數電話號碼的dijit.form.ValidationTextBox
。驗證在道場個ValidationTextBox
我想確保數字正好是10位數字,沒有字母,連字符或者parens或其他特殊字符。有人可以幫我嗎?
一個10位數的電話號碼,我與dojo1.7工作,在這裏,我正在尋找一個簡單的正則表達式或範圍/地方,這將驗證10位數電話號碼的dijit.form.ValidationTextBox
。驗證在道場個ValidationTextBox
我想確保數字正好是10位數字,沒有字母,連字符或者parens或其他特殊字符。有人可以幫我嗎?
對於確切的10位數字,您可以使用RegExp \d{10}
。這是一個工作示例:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Telephone Number Check</title>
<link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/dojo/1.7/dijit/themes/claro/claro.css">
<script src="http://ajax.googleapis.com/ajax/libs/dojo/1.7/dojo/dojo.js" data-dojo-config="async: true, parseOnLoad: true"></script>
<script>
require(["dojo/parser", "dijit/form/ValidationTextBox"]);
</script>
</head>
<body class="claro">
<label for="tel">Enter your 10 digits telephone number:</label>
<input type="text" name="tel" value=""
data-dojo-type="dijit.form.ValidationTextBox"
data-dojo-props="regExp:'\\d{10}', required:true, invalidMessage:'Invalid telephone number.'">
</body>
</html>
<input id="reverveAmount" required="true" style="width:50px" data-dojo-type="dijit.form.ValidationTextBox" data-dojo-props='maxLength:"3",constraints:{places:1,min:1,max:20}, regExpGen:function(){ return "\\d+" }, required:true, invalidMessage:"Number only"'>
這對我的工作好。
要強制一種格式,您可以覆蓋過濾器方法。默認過濾器方法來自_TextBoxMixin.js,這是修剪,大寫,小寫和propercase實現的地方。
這會重新格式化一個ValidationTextBox值爲### - ### - ####。 如果你不想使用連字符,只需刪除兩條拼接線。當然你也可以用其他方式實現過濾方法,比如使用dojo/number。
declare('calpoly/form/FormattingPhoneNumber', [ValidationTextBox], {
regExp:"\\d{3}-\\d{3}-\\d{4}",
invalidMessage:"Please enter a 10-digit phone number",
filter:function(val){
val = lang.trim(val);
var s = [];
for(var i=0; i<val.length;i++){
if(!isNaN(val[i])){
s.push(val[i]);
}
}
if(s.length!=10){
// Not a 10-digit phone number, return what the user typed, regex will invalidate.
return val;
}
s.splice(3,0,'-');
s.splice(7,0,'-');
return s.join('');
}
});
這與接受答案的代碼有什麼不同? – 2012-10-10 22:22:23