判断输入的是否是汉字(中文,不包括中文符号)
时间:2011-04-29 来源:peter cheng
首先想到的是正则判断:
var pattern = /^[\u4e00-\u9fa5]{1,4}(?![\u4e00-\u9fa5])/; if (str != "") { if (!pattern.test(str)) { alert("不是中文"); return false; } return true; }
上面test也可换成exec;如果换成match,这样写:!str.match(pattern)。
exec(string): 对string进行正则处理,并返回匹配结果.
exec方法返回的数组有3个属性,分别是input、index和lastIndex 。
1 input 属性是整个被搜索的字符串。
2 index属性是指匹配在整个被搜索字符串中的位置。
3 lastIndex 属性是指匹配的子字符串的最后一个字符的下一个字符位置。
test(string): 测试string是否含有匹配结果
字符串对象中的正则
方法
match(pattern) :根据pattern进行正则匹配,如果匹配到,返回匹配结果,如匹配不到返回null
search(pattern) :根据pattern进行正则匹配,如果匹配到一个结果,则返回它的索引数;否则返回-1
replace(pattern,replacement) :根据pattern进行正则匹配,把匹配结果替换为replacement
split(pattern) :根据pattern进行正则分割,返回一个分割的数组
关于二者的区别,详见这里
相关阅读 更多 +