帮忙解释一段JavaScript代码

来源:百度知道 编辑:UC知道 时间:2024/06/22 02:08:13
if(!(/^\w{5,15}$/.test(f.userid.value))){
alert("用户ID必须是5~15位!") ;
f.userid.focus() ;
return false ;
}
我只知道这段代码是验证用的,但是很不理解,尤其是(!(/^\w{5,15}$/.test(f.userid.value)))这句,请高人指点一下!

百度人才特多!二楼,什么叫js内部函数?听一下你的高论!

判断就是一个正则表达式,在正则表达式中有一个test的方法,这个方法是看正则表达式是否匹配!

var ss = /^\w{5,15}$/;
这就是正则表达式的,^匹配开始,$匹配结尾.\w表示一个字符,当然包含数字字母下划线之类的.{5,15}是限定符,表示最少5个,最多15个!
ss.test(str)表示用这个正则去匹配str,要求就是上边的正则要求.test方法是如果匹配则返回真值,否则是假值.所以这个常被称作匹配测试!呵呵,与match是不同的,match返回是匹配结果,会设置一些正则的常量,而test速度快,且不会,故称其为测试匹配.
f是因为你的文件中有一个name="f"的form,在这个form中还有一个userid的文本框,用这个就是测试f下userid文本框的值是否是匹配,也就是符合我们要求.
前边加一个!是取反,也就是说如果不匹配则会进行if内结语句,提示其错误原因!

f.userid.focus()就是让其重新得到焦点而已!
没了,看一下正则表达式对你有好处的!

二楼,难道你说的函数如果不是自定义的就是内部函数吗?JS中不存在内容函数的定义的.而只有在OOPL语言中才会出现一个内部函数!那是因为只能由自已的对象引用,其他的地方是引用不了的.这样的函数才称其为内部函数!这是对OOPL下的定义,而不是JS,因为JS还是不是OOPL(面向对象编程语言)!

第二句就给你解释了嘛,判断id的长度,必须在5-15个字符之间

if(!(/^\w{5,15}$/.test(f.userid.value))){
这句是JS里面的一个内部函数,来判断f.userid.value的值
你注意看{5,15} 这句 。就明白了
你在网上搜一下。JS里有很多内部函数的。比如判断只能为数据。 带多少个小数的这些函数JS都有。这个你只有自己搜一下。

楼上正解

(!(/^\w{5,15}$/.test(f.userid.value)))