【发布时间】:2014-09-07 01:04:37
【问题描述】:
我有一个 signup.php 文件,其中包含一个用于验证用户名和电子邮件的脚本。我在 php 文件中添加了一个电话号码字段,并将其作为 varchar(15) 添加到数据库中。一切正常,但它接受在该字段中输入的任何废话。我应该在下面的脚本中添加什么语法来验证电话号码?
必需的验证 *文本框应允许输入 11 位数字。 *如果用户输入一个 10 位数字,在数据库中它应该将数据库表字段更新为 +91 后跟 10 位数字 *如果用户输入一个以 0 开头的 11 位数字,它应该删除零并将数据库表字段更新为 +91 后跟 10 位数字(删除 0) *不允许使用字母和特殊字符
<script type="text/javascript">
function check_username(){
var b=$('#username').val();
if(b.length<3){
$('#username').css('border','2px solid #a50000')
}else{
$.get("system/ajax.php?a=checkUser",{data:b},function(a){
if(a==1){
$('#username').css('border','2px solid #00a500')
}else{
$('#username').css('border','2px solid #a50000')
}
})
}
}
function check_email(){
var b=$('#email').val();
if(b.length<3){
$('#email').css('border','2px solid #a50000')
}else{
$.get("system/ajax.php?a=checkEmail",{data:b},function(a){
if(a==1){$('#email').css('border','2px solid #00a500')
}else{
$('#email').css('border','2px solid #a50000')
}
})
}
}
function check_email2(){
var a=new RegExp(/^(("[\w-+\s]+")|([\w-+]+(?:\.[\w-+]+)*)|("[\w-+\s]+")([\w-+]+(?:\.[\w-+]+)*))(@((?:[\w-+]+\.)*\w[\w-+]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][\d]\.|1[\d]{2}\.|[\d]{1,2}\.))((25[0-5]|2[0-4][\d]|1[\d]{2}|[\d]{1,2})\.){2}(25[0-5]|2[0-4][\d]|1[\d]{2}|[\d]{1,2})\]?$)/i);
var b=$('#email').val();
var c=$('#email2').val();
if(!a.test(c)){
$('#email2').css('border','2px solid #a50000')
}else if(b==c){
$('#email2').css('border','2px solid #00a500')
}else{
$('#email2').css('border','2px solid #a50000')
}
}
</script>
谢谢
【问题讨论】:
-
请发布您目前尝试过的内容。
-
我搜索了一下,发现我必须把它放在某个地方 [0-9][0-9][0-9][0-9][0-9][0-9 ][0-9][0-9][0-9][0-9] 并以 +91 作为前缀。我还了解到,如果满足验证,边框颜色将变为绿色,如果不满足,则变为红色并写入 $db->Query("INSERT INTO
users(email,phone,login,country,sex) values('" .$email."','".$phn."','".$name."','".$country."','".$gender."')");将其插入数据库。在编写验证以及如何在 insert into 语句中添加前缀 +91 方面需要帮助 -
不要重新发明轮子。使用 Google 的 libphonenumber:github.com/giggsey/libphonenumber-for-php
标签: php mysql database validation phpmyadmin