关于javascript里面使用正则表达式的一个问题,送上20分

来源:百度知道 编辑:UC知道 时间:2024/05/12 01:01:44
<script>
function aaa()
{
var objregex=/[^a-z]/g;
var user=document.form2.user.value;
var one=user.match(objregex)
if (one)
{
alert("用户名输入错误");
return false;
}
}
</script>
运行后只能在文本框上输入a-z按键.程序的意思不是除a-z外,其他按键都能按的吗?
if (one)这句怎样解释?

/[^a-z]/g

[^a-z]
小写a-z以外的所有字符
/g 全局匹配找字符串的所有

user.match(objregex)

match函数是对字符串user进行符合objregex正则表达式检索。
如果不匹配则返回null,匹配的话返回符合的数组。

if (one)
这里one 本来不是bool型,被强行转换为bool型。
null 会被转换为false,数组则为true.

意思为
如果找回非a-z的字符串,则返回错误。

var objregex=/[^a-z]/g;
^表示正则表达式开始标记.
one是match函数的返回值,是个BOOL型的.
所以可以直接if(one)相当于if(one==true)

one表示是否匹配成功~~?