checkFormat(str){if
(escape(str).indexOf("%u")!=-1)
alert("不能含有汉字")
else
if(str.match(/\D/)!=null){alert('不能含有字母')
}
}其中,str是你在文本框中输入的值,传到此函数中,来进行判断。具体用法就是:
this.value即为你输入的值。当输完以后在别的地方点一下左键即可触发本函数来判断你是否输入了汉字或字符。另外,还可以在此函数上改进一下,再加一个参数用来显示哪个属性不能为空:function
checkFormat(str,name){if
(escape(str).indexOf("%u")!=-1)
if(name=='phone')
{
alert("电话不能含有汉字")
}
else
if(str.match(/\D/)!=null)
{
if(name=='phone')
{
alert('电话不能含有字母')
}
问题分析:
在JavaScript脚本语言中判断一个字符串中是否即包含数字亦包含字母,可以使用正则(RegExp对象)的方式,如果仅仅只是做判断,要求返回true或者false的话,那么使用RegExp对象的test方法即可。
举例如下:
//定义字符串var str1 = '123' //第一个字符串,仅有数字。
var str2 = 'abc' //第二个字符串,仅有字母。
var str3 = 'a1b2c3' //第三个字符串,既有数字亦有字母。
//定义验证规则,由于字符串数字和字母的顺序可能不同。
//也有可能字母和数字中间还包含了其他字符。故将验证规则分开定义。
var regNumber = /\d+/ //验证0-9的任意数字最少出现1次。
var regString = /[a-zA-Z]+/ //验证大小写26个字母任意字母最少出现1次。
//验证第一个字符串
if (regNumber.test(str1) && regString.test(str1)) {
console.log('str1:验证成功')
}else{
console.log('str1:验证失败')
}
//验证第二个字符串
if (regNumber.test(str2) && regString.test(str2)) {
console.log('str2:验证成功')
}else{
console.log('str2:验证失败')
}
//验证第三个字符串
if (regNumber.test(str3) && regString.test(str3)) {
console.log('str3:验证成功')
}else{
console.log('str3:验证失败')
}
运行结果:
总结:
由于第一个字符串仅有数字,第二个字符串仅有字母,都不符合数字和字母都必须存在的需求,所以执行结果是“验证失败”,而第三个字符串,既包含字母亦包含数字,所以执行结果是“验证成功”。
1. 例子:var tempStr = "tempText"
tempStr.indexOf("Texxt")//返回大于等于0的整数值,若不包含"Text"则返回"-1。
2. indexOf用法:
strObj.indexOf(subString[, startIndex])
JavaScript中indexOf函数方法返回一个整数值,指出 String 对象内子字符串的开始位置。如果没有找到子字符
串, 则返回 -1。如果 startindex 是负数,则 startindex 被当作零。如果它比最大的字符位置索引还大,则它
被当作最大的可能索引。
参数:
strObj : 必选项,String 对象或文字。
subString :必选项,要在 String 对象中查找的子字符串。
starIndex :可选项,该整数值指出在 String 对象内开始查找的索引。如果省略,则从字符串的开始处查找;
如果 startindex 是负数,则 startindex 被当作零。如果它比最大的字符位置索引还大,则它被当作最大的可能
索引。
3. 与lastIndexOf的区别:
lastIndexOf() 方法则是从字符串的结尾开始检索子串。