/* 程序功能:输入验证 */
/* 函数名称: */
/* function CheckData(valname,val,valimode,limitlen) */
/* 功能说明:验证字符串数据 */
/* function CheckUserName(val,min,max) */
/* 功能说明:验证用户名 */
/* function CheckPassWord(val,min,max) */
/* 功能说明:验证密码 */
/* function IsSame(val1,val2) */
/* 验证密码匹配 */
/* function CheckEmail(val,mode) */
/* 功能说明:验证Email */
/* function CheckValHeight(val,min,max,mode) */
/* 功能说明:验证用户身高 */
/* function CheckValWeight(val,min,max,mode) */
/* 功能说明:验证用户体重 */
/* function CheckNumber(val,min,max,mode) */
/* 功能说明:验证数值 */
/* function CheckPositive(val,min,max,mode) */
/* 功能说明:验证正数值 */
/* function CheckNegative(val,min,max,mode) */
/* 功能说明:验证负数值 */
/* function CheckFloat(val,min,max,mode) */
/* 功能说明:验证浮点数值 */
/* function CheckPath(val,mode) */
/* 功能说明:验证文件路径 */
/* function CheckURL(val,mode) */
/* 功能说明:验证URL */
/* function CheckChinaIDCard_J(val,mode) */
/* 功能说明:验证身份证 */
/* function isInteger(sNum) */
/* 功能说明:验证整数 */
/* function CheckZip(val,slen,mode) */
/* 功能说明:验证Zip */
/* 输入参数:mode真&假(是否允许为空) */
/* val表单(被判断项),va2表单(被判断项) */
/* max(最大值),min(最小值) ...... */
/* 编写时间: 2003.09.08.2214 */
/*$#################################################$*/
//验证字符串数据
function CheckData(valname,val,valimode,limitlen){
if( val.value.indexOf("<",0)>0 || val.value.indexOf(">",0)>0){
alert(valname+"不能包含<或>字符!。");
val.focus();
val.select();
return false;
}
if(valimode==1){
if(isblank(val.value)){
alert(valname+"不能为空!");
val.focus();
val.select();
return false;
}
tmp=new String(val.value)
if(istoolong(tmp,limitlen)){
alert(valname+"不能超过"+limitlen+"个字符!");
val.focus();
val.select();
return false;
}
}
else{
tmp=new String(val.value)
if(istoolong(tmp,limitlen)){
alert(valname+"不能超过"+limitlen+"个字符!!");
val.focus();
val.select();
return false;
}
}
return true;
}
function isblank(str){
var i;
var len=str.length;
for(i=0;i<len;++i){
if(str.charAt(i)!=" ")
return false;
}
return true;
}
function istoolong(str,i){
var len=str.length;
if(i==0)
return false;
else{
if(len>i)
return true;
else
return false;
}
}
//验证用户名
function CheckUserName(val,min,max){
var len = val.value.length;
if (len<min || len>max){
alert("用户名长度不正确,应为"+min+"-"+max+"个英文字母、数字。");
val.focus();
val.select();
return false;
}
for (i=0;i<val.value.length;i++){
var ch = val.value.charAt(i);
if ( (ch<"0" || ch>"9") && (ch<"a" || ch >"z")){
alert("用户名必须由小写字母或数字组成。");
val.focus();
val.select();
return false;
}
}
var first =val.value.charAt(0)
if (first<"a" || ch >"z"){
alert("用户名必须由小写字母开头。");
val.focus();
val.select();
return false;
}
return true;
}
//验证密码
function CheckPassWord(val,min,max){
var len = val.value.length;
if (len<min || len>max){
alert("密码长度不正确,应为"+min+"-"+max+"个英文字母、数字。");
val.focus();
val.select();
return false;
}
for (i=0;i<val.value.length;i++){
var ch = val.value.charAt(i);
if ( (ch<"0" || ch>"9") && (ch<"a" || ch >"z")){
alert("密码必须由小写字母或数字组成。");
val.focus();
val.select();
return false;
}
}
return true;
}
//验证密码匹配
function IsSame(val1,val2){
if (val1.value != val2.value ){
alert("两次输入的密码不相同。");
val2.focus();
val2.select();
return false;
}
else
return true;
}
//验证Email
function CheckEmail(val,mode){
if((mode==0) && (val.value=="")){
return true;
}
var etext
var elen
var i
var aa
etext=val.value
elen=etext.length
if (elen<5){
alert("请输入正确的Email。");
val.focus();
val.select();
return false;
}
i= etext.indexOf("@",0)
if (i==0 || i==-1 || i==elen-1){
alert("请输入正确的Email。");
val.focus();
val.select();
return false;
}
else{
if (etext.indexOf("@",i+1)!=-1){
alert("请输入正确的Email。");
val.focus();
val.select();
return false;
}
}
if (etext.indexOf("..",i+1)!=-1){
alert("请输入正确的Email。");
val.focus();
val.select();
return false;
}
i=etext.indexOf(".",0)
if (i==0 || i==-1 || etext.charAt(elen-1)=='.'){
alert("请输入正确的Email。");
val.focus();
val.select();
return false;
}
if ( etext.charAt(0)=='-' || etext.charAt(elen-1)=='-'){
alert("请输入正确的Email。");
val.focus();
val.select();
return false;
}
if ( etext.charAt(0)=='_' || etext.charAt(elen-1)=='_'){
alert("请输入正确的Email。");
val.focus();
val.select();
return false;
}
for (i=0;i<=elen-1;i++){
aa=etext.charAt(i)
if (!((aa=='.') || ([email=aa=='@']aa==[/email]) || (aa=='-') ||(aa=='_') || (aa>='0' && aa<='9') || (aa>='a' && aa<='z') || (aa>='A' && aa<='Z'))){
alert("请输入正确的Email。");
val.focus();
val.select();
return false;
}
}
return true;
}
//验证用户身高
function CheckValHeight(val,min,max,mode){
if((mode==0) && (val.value=="")){
return true;
}
var len = val.value.length;
if (len<min || len>max){
alert("请输入正确的身高数据。");
val.focus();
val.select();
return false;
}
var val2 = val.value;
for (i=0;i<val2.length;i++){
var ch = val2.charAt(i);
if ( (ch<"0" || ch>"9") ){
alert("身高数据必须由有效数字组成。");
val.focus();
val.select();
return false;
}
}
if (isNaN(val2)){
alert("身高数据必须由有效数字组成。");
val.focus();
val.select();
return false;
}
else if (parseInt(val2)<=0){
alert("身高数据必须由有效数字组成。");
val.focus();
val.select();
return false;
}
else if (val2.indexOf('0')==0){
alert("身高数据必须由有效数字组成。");
val.focus();
val.select();
return false;
}
return true;
}
//验证用户体重
function CheckValWeight(val,min,max,mode){
if((mode==0) && (val.value=="")){
return true;
}
var len = val.value.length;
if (len<min || len>max){
alert("请输入正确的体重数据。");
val.focus();
val.select();
return false;
}
var val2 = val.value;
for (i=0;i<val2.length;i++){
var ch = val2.charAt(i);
if ( (ch<"0" || ch>"9") ){
alert("体重数据必须由有效数字组成。");
val.focus();
val.select();
return false;
}
}
if (isNaN(val2)){
alert("体重数据必须由有效数字组成。");
val.focus();
val.select();
return false;
}
else if (parseInt(val2)<=0){
alert("体重数据必须由有效数字组成。");
val.focus();
val.select();
return false;
}
else if (val2.indexOf('0')==0){
alert("体重数据必须由有效数字组成。");
val.focus();
val.select();
return false;
}
return true;
}
//验证数值
function CheckNumber(val,min,max,mode){
if((mode==0) && (val.value=="")){
return true;
}
var len = val.value.length;
if (len<min || len>max){
alert("请输入正确的数值。");
val.focus();
val.select();
return false;
}
var val2 = val.value;
for (i=1;i<val2.length;i++){
var ch = val2.charAt(i);
if ( (ch<"0" || ch>"9" ) ){
alert("请输入正确的数值。");
val.focus();
val.select();
return false;
}
}
if (isNaN(val2)){
alert("请输入正确的数值。");
val.focus();
val.select();
return false;
}
else if (val2.indexOf('0')==0 && len>1){
alert("请输入正确的有效数值。");
val.focus();
val.select();
return false;
}
else if (val2.indexOf('-')==0 && val2.indexOf('0')==1){
alert("请输入正确的有效数值。");
val.focus();
val.select();
return false;
}
return true;
}
//验证正数值
function CheckPositive(val,min,max,mode){
if((mode==0) && (val.value=="")){
return true;
}
if(!CheckNumber(val,min,max,mode)){
val.focus();
val.select();
return false;
}
if (parseInt(val.value)<=0){
alert("数据必须为有效的正整数。");
val.focus();
val.select();
return false;
}
return true;
}
//验证负数值
function CheckNegative(val,min,max,mode){
if((mode==0) && (val.value=="")){
return true;
}
if(!CheckNumber(val,min,max,mode)){
val.focus();
val.select();
return false;
}
if (parseInt(val.value)>=0){
alert("数据必须为有效的负整数。");
val.focus();
val.select();
return false;
}
return true;
}
//验证浮点数值
function CheckFloat(val,min,max,mode){
if((mode==0) && (val.value=="")){
return true;
}
var len = val.value.length;
if (len<min || len>max){
alert("请输入正确的浮点数值。");
val.focus();
val.select();
return false;
}
var val2 = val.value;
for (i=1;i<val2.length;i++){
var ch = val2.charAt(i);
if ( (ch<"0" || ch>"9" ) ){
if(ch!="."){
alert("请输入正确的浮点数值。");
val.focus();
val.select();
return false;
}
}
}
if (isNaN(val2)){
alert("请输入正确的浮点数值。");
val.focus();
val.select();
return false;
}
else if (val2.indexOf('0')==0 && val2.indexOf('.')!=1){
alert("请输入正确的有效浮点数值。");
val.focus();
val.select();
return false;
}
else if (val2.indexOf('-')==0 && val2.indexOf('0')==1 && val2.indexOf('.')!=2){
alert("请输入正确的有效浮点数值。");
val.focus();
val.select();
return false;
}
else if (val2.indexOf('-')==0 && val2.indexOf('.')==1){
alert("请输入正确的有效浮点数值。");
val.focus();
val.select();
return false;
}
else if (val2.indexOf('.')==0){
alert("请输入正确的有效浮点数值。");
val.focus();
val.select();
return false;
}
return true;
}
//验证文件路径
function CheckPath(val,mode){
if((mode==0) && (val.value=="")){
return true;
}
var val2 = val.value;
if ( val2.indexOf('://')>0 ){
var isNmailto:!@#$^*()'`~|]}[{;.>,!@#$^*()'`~|]}[{;.>,<?%&+=";
if (val2.indexOf('/"')>0){
alert("请输入正确的文件路径。");
val.focus();
val.select();
return false;
}
else{
for (var i = 0;i < val2.length;i++){
for (var x = 1 ;x < isNot.length;x++){
if (val2.charAt(i)==isNot.charAt(x)){
alert("请输入正确的文件路径。");
val.focus();
val.select();
return false;
}
}
}
}
}
else{
alert("请输入正确的文件路径。");
val.focus();
val.select();
return false;
}
return true;
}
//验证URL
function CheckURL(val,mode){
if((mode==0) && (val.value=="")){
return true;
}
var val2 = val.value;
if ( val2.indexOf('://')>0 ){
var isNmailto:!@$^*()'">!@$^*()'`~|]}[{;.>,<";
if (val2.indexOf('/"')>0){
alert("请输入正确的URL。");
val.focus();
val.select();
return false;
}
else{
for (var i = 0;i < val2.length;i++){
for (var x = 1 ;x < isNot.length;x++){
if (val2.charAt(i)==isNot.charAt(x)){
alert("请输入正确的URL。");
val.focus();
val.select();
return false;
}
}
}
}
}
else{
alert("请输入正确的URL。");
val.focus();
val.select();
return false;
}
return true;
}
//验证身份证
function CheckChinaIDCard_J(val,mode){
if((mode==0) && (val.value=="")){
return true;
}
sNo = val.value.toString()
if (!isInteger(sNo)) {
alert("请输入正确的身份证。");
val.focus();
val.select();
return false
}
switch(sNo.length){
case 15: if (isValidDate(sNo.substr(6,2),sNo.substr(8,2),sNo.substr(10,2))) {
return true
}
case 17: if (isValidDate(sNo.substr(6,4),sNo.substr(10,2),sNo.substr(12,2))) {
return true
}
}
alert("请输入正确的身份证。");
val.focus();
val.select();
return false
}
function isInteger(sNum) {
var num
num=new RegExp('[^0-9_]','')
if (isNaN(sNum)) {
return false
}
else {
if (sNum.search(num)>=0) {
return false
}
else {
return true
}
}
}
//验证Zip
function CheckZip(val,slen,mode){
if((mode==0) && (val.value=="")){
return true;
}
if(val.value.length!=slen){
alert('请输入正确的邮政编码!!');
val.focus();
val.select();
return false
}
var r1
r1 = new RegExp('[^0-9]','');
if ( val.value.search(r1) >= 0 ) {
alert('请输入正确的邮政编码!!');
val.focus();
val.select();
return false
}
else
return true;
}
电话号码的验证
要求:
(1)电话号码由数字、"("、")"和"-"构成
(2)电话号码为3到8位
(3)如果电话号码中包含有区号,那么区号为三位或四位
(4)区号用"("、")"或"-"和其他部分隔开
(5)移动电话号码为11或12位,如果为12位,那么第一位为0
(6)11位移动电话号码的第一位和第二位为"13"
(7)12位移动电话号码的第二位和第三位为"13"
根据这几条规则,可以与出以下正则表达式:
(^[0-9]{3,4}/-[0-9]{3,8}$)|(^[0-9]{3,8}$)|(^/([0-9]{3,4}/)[0-9]{3,8}$)|(^0{0,1}13[0-9]{9}$)
<script language="javascript">
function PhoneCheck(s) {
var str=s;
var reg=/(^[0-9]{3,4}/-[0-9]{3,8}$)|(^[0-9]{3,8}$)|(^/([0-9]{3,4}/)[0-9]{3,8}$)|(^0{0,1}13[0-9]{9}$)/
alert(reg.test(str));
}
</script>
<input type=text name="iphone">
<input type=button οnclick="PhoneCheck(document.all.iphone.value)" value="Check">