想要在输入文本中使用+91 pefix,该文本可以保持不变,并且在输入数据后第3个和第6个数字后要有空格或连字符...可以吗?这是我的代码,请帮助!!先感谢您
function ValidateMobNumber(txtMobId) {
var fld = document.getElementById(txtMobId);
if (fld.value == "") {
alert("You didn't enter a phone number.");
fld.value = "";
fld.focus();
return false;
}
else if (isNaN(fld.value)) {
alert("The phone number contains illegal characters.");
fld.value = "";
fld.focus();
return false;
}
else if (!(fld.value.length == 10)) {
alert("The phone number is the wrong length. \nPlease enter 10 digit mobile no.");
fld.value = "";
fld.focus();
return false;
}
}
</script>
</head>
<body>
<input type="text" id="txtMB" />
<!--Or Call on Button-->
<input type="submit" id="btnVal" value="Save" onclick="return ValidateMobNumber('txtMB')" />
最佳答案
您要查找的正则表达式为:
^\+91 ?\d{3}([ -]{1})?\d{3}([ -]{1})?\d{3}$
/* valid are:
+91 123 456-789
+91123456789
+91 123-456-789
etc.
the regex means: +91, optional space, 3 numbers, optional one space or hyphen, the same once again and three numbers at the end.
*/
当您想在JavaScript中测试regexp时,您需要使用方法
.test
,请参见下面的代码。<form onsubmit="return ValidateMobNumber('txtMB');">
<input type="text" id="txtMB">
<input type="submit" id="btnVal" value="Save">
<form>
<script>
function ValidateMobNumber(txtMobId) {
var fld = document.getElementById(txtMobId);
var patt = /\+91 ?\d{3}([ -]{1})?\d{3}([ -]{1})?\d{3}$/;
var res = patt.test(fld.value);
alert(res); // just for testing to show you if phone number is valid or not, remove that
return res;
}
</script>
http://jsfiddle.net/yv4dyoLg/
确认您在验证功能中不需要3个条件,上面的代码已完成,错误消息可能是“您插入了无效的电话号码”。
我将返回值移到公式的
onsubmit
操作中,因为可以使用Enter将其发送。当您按Enter键时,onclick
不会在submit input
上激活。关于javascript - 在3位数和6位数之后插入空格或连字符,且前缀为+91,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27775222/