问题描述
怎么用JS 判断输入串是否符合 标识符 的规范,禁止输入串是合法的标识符? 问题补充:1楼的是很全面的 但是我需要判断是否是 标识符 的JS哦
解决方案
引用 但是我需要判断是否是 标识符 的JS哦 别再犹豫! 蔡老板经典用法! 满足你! 呵呵function isValidIdentifier(str){ try{ eval("var "+str+"=0;"); return true; }catch(e){ return false; } }
解决方案二:
function isValidIdentifier(str){try{eval("var "+str+"=0;");return true;}catch(e){return false;}}我也是来膜拜的
解决方案三:
解决方案四:
引用定义一个,报错了就是不能用的!这个必须得顶!!!!!
解决方案五:
定义一个,报错了就是不能用的!经典用法! function isValidIdentifier(str){ try{ eval("var "+str+"=0;"); return true; }catch(e){ return false; } }
解决方案六:
function isValidIdentifier(str){try{eval("var "+str+"=0;");return true;}catch(e){return false;}}定义一个,报错了就是不能用的!
解决方案七:
那你就要参考规范了,什么不能以数字开头了,开头不能是特属字符了,一个个来!
解决方案八:
嗯。楼上的很全面了。可以好好参考!
解决方案:
JS判断字符串格式是否合法 /** * 浏览器脚本函数列表 * boolean isNumber(numStr) :判断字符串是否是数值格式 * boolean isValidString(szStr) :判断字符串中是否含有非法字符"'"><" * boolean isBlank(szStr) :判断字符串是否为空字符串(或不包含除空格外的其他字符) * String trim(szStr) :去掉字符串两端的空格 * boolean isDateStr(ds) :判断字符串是否为合法的日期格式:YYYY-MM-DD HH:MM:SS * 或 YYYY-MM-DD 或 HH:MM:SS * boolean isDatePart(dateStr) :判断字符串是否为合法的日期格式:YYYY-MM-DD * boolean isTimePart(dateStr) :判断字符串是否为合法的时间格式:HH:MM:SS * boolean chk_email(emailAddress) :判断邮件地址格式是否合法 *//*********************************************************************** * 判断一个字符串是否是数值格式 */function isNumber(numStr){ return !isNaN(numStr);}/*********************************************************************** * 判断一个字符串中是否含有下列非法字符 */voidChar = "'"><";function isValidString(szStr){ for(i = 0 ; i < voidChar.length; i ++){ aChar = voidChar.substring(i, i + 1); if(szStr.indexOf(aChar) > -1){ return false; } } return true;}/*********************************************************************** * 判断一个字符串是否为空字符串 */function isBlank(szStr){ if(szStr.length < 1){ return true; } for(i = 0; i < szStr.length; i ++){ if(szStr.substring(i, i + 1) != ' '){ return false; } } return true;}/*********************************************************************** * 去掉一个字符串两端的空格 */function trim(szStr){ //去掉字符串头部的空格 while(szStr.length > 0){ if( szStr.substring(0, 1) != ' '){ break; }else{ szStr = szStr.substring(1); } } //去掉字符串尾部的空格 while(szStr.length > 0){ if( szStr.substring(szStr.length - 1, szStr.length) != ' '){ break; }else{ szStr = szStr.substring(0,szStr.length - 1); } } return szStr;}/*********************************************************************** * 判断一个字符串是否为合法的日期格式:YYYY-MM-DD HH:MM:SS * 或 YYYY-MM-DD 或 HH:MM:SS */function isDateStr(ds){ parts = ds.split(' '); switch(parts.length){ case 2: if(isDatePart( parts[0] ) == true && isTimePart( parts[1] )){ return true; }else{ return false; } case 1: aPart = parts[0]; if(aPart.indexOf(':') > 0 ){ return isTimePart(aPart); }else{ return isDatePart(aPart); } default: return false; }}/*********************************************************************** * 判断一个字符串是否为合法的日期格式:YYYY-MM-DD */function isDatePart(dateStr){ var parts; if(dateStr.indexOf("-") > -1){ parts = dateStr.split('-'); }else if(dateStr.indexOf("/") > -1){ parts = dateStr.split('/'); }else{ return false; } if(parts.length < 3){ //日期部分不允许缺少年、月、日中的任何一项 return false; } for(i = 0 ;i < 3; i ++){ //如果构成日期的某个部分不是数字,则返回false if(isNaN(parts[i])){ return false; } } y = parts[0];//年 m = parts[1];//月 d = parts[2];//日 if(y > 3000){ return false; } if(m < 1 || m > 12){ return false; } switch(d){ case 29: if(m == 2){ //如果是2月份 if( (y / 100) * 100 == y && (y / 400) * 400 != y){ //如果年份能被100整除但不能被400整除 (即闰年) }else{ return false; } } break; case 30: if(m == 2){ //2月没有30日 return false; } break; case 31: if(m == 2 || m == 4 || m == 6 || m == 9 || m == 11){ //2、4、6、9、11月没有31日 return false; } break; default: } return true;}/*********************************************************************** * 判断一个字符串是否为合法的时间格式:HH:MM:SS */function isTimePart(timeStr){ var parts; parts = timeStr.split(':'); if(parts.length < 2){ //日期部分不允许缺少小时、分钟中的任何一项 return false; } for(i = 0 ;i < parts.length; i ++){ //如果构成时间的某个部分不是数字,则返回false if(isNaN(parts[i])){ return false; } } h = parts[0];//年 m = parts[1];//月 if( h < 0 || h > 23){ //限制小时的范围 return false; } if( m < 0 || h > 59){ //限制分钟的范围 return false; } if(parts.length > 2){ s = parts[2];//日 if( s < 0 || s > 59){ //限制秒的范围 return false; } } return true;}function chk_email(email){ invalid = ""; if (!email){} //invalid = "请输入您的Email地址。"; else { if ( (email.indexOf("@") == -1) || (email.indexOf(".") == -1) ) invalid += "nnEmail地址不合法。应当包含'@'和'.';例如('.com')。请检查后再递交。"; if (email.indexOf("your email here") > -1) invalid += "nnEmail地址不合法,请检测您的Email地址,在域名内应当包含'@'和'.';例如('.com')。"; if (email.indexOf("\") > -1) invalid += "nnEmail地址不合法,含有非法字符(\)。"; if (email.indexOf("/") > -1) invalid += "nnEmail地址不合法,含有非法字符(/)。"; if (email.indexOf("'") > -1) invalid += "nnEmail地址不合法,含有非法字符(')。"; if (email.indexOf("!") > -1) invalid += "nnEmail地址不合法,含有非法字符(!)。"; if ( (email.indexOf(",") > -1) || (email.indexOf(";") > -1) ) invalid += "nn只输入一个Email地址,不要含有分号和逗号。"; if (email.indexOf("?subject") > -1) invalid += "nn不要加入'?subject=...'。"; } if (invalid == ""){ return true; }else{ alert("输入的Email可能包含错误:" + invalid); return false; }}