asp判断手机号码
我想把这段代码改成只是判断前3位是不是符合手机号的前3位和判断手机号的位数为11位。
<script LANGUAGE="JavaScript">
function checkMobile(){
var sMobile = document.mobileform.mobile.value
if(!(/^13[0-9]\d{4,8}$/.test(sMobile))){
alert("不是完整的11位手机号或者正确的手机号前七位");
document.mobileform.mobile.focus();
return false;}
window.open('', 'mobilewindow', 'height=197,width=350,status=yes,易做图=no,menubar=no,location=no')
}</script>
是不是修改代码:(!(/^13[0-9]\d{4,8}$/.test(sMobile))){ 中的参数?这些参数各代表什么意思呢?
补充:我只是想判断手机号的前3位和手机号的是否为11位.该怎么改呢?
答案:把 /^13[0-9]\d{4,8}$/ 改为
/^(13[0-9]|15[890])\d{8}$/
解释以下 ^表示字符串的开始 $表示结束 这两个合起来表示全字符匹配.
[0-9] 表示0-9中的任意一个 [890] 表示 8,9,0 中的任意一个
\d 匹配所有的数字 相当于[0-9]
{8} 表示出现8次
这是"正则表达式",可以找一下资料学习一下
/^13[0-9]\d{8}$/
/^ $/表示正则表达式的开始结束 [0-9],或\d表达只能为数字, {9},表达长度``
有个地方忘记解释了
(13[0-9]|15[890]) ()表示分组 |表示替换(也就是或者的意思)
所以这个就表示 13*或者15[890]
如果不用括号的话结果就会截然不同 变为
13* 或者15[890]\d{8}. 也就是说 匹配13[0-9] (这个可是3位)或者 15[890]+8位数字
<script language="javascript">
function isValidMobile(str)
{
pat4=/^1[3,5][0-9]{9}$/
if(!pat4.exec(str)){
return false;
}
return true;
}
var chktelrasult
chktelrasult=""
function checkTelCode(){
var str = document.getElementById('txtMobile').value;
if (str!=""){
if (!isValidMobile(str)){
chktelrasult="<font color=red>* 请正确填写手机号码</font>"
document.getElementById("chkMobile").innerHTML=chktelrasult
}
else{
chktelrasult="<font color=green>√</font>"
document.getElementById("chkMobile").innerHTML=chktelrasult
}
}
}
</script>
联系方式:手机: <input name="TXTtel" id="txtMobile" type="text" onblur="checkTelCode();"><br><div id="chkMobile" style="padding-left:60px">(填写您的手机号码)</div>
上一个:asp.net中我把textbox的 AutoPostBack属性设置为 true 时,button的 点击事件 就不执行了,总是 在第二次点击时,才执行点击事件 代码,是怎么回事?
下一个:asp.net 插入数据