我正在尝试向我的应用程序添加一些JavaScript验证,以检查电子邮件地址的格式是否正确。
这是我用来执行验证检查的代码:
var bValid = true;
allFields.removeClass( "ui-state-error" );
bValid = bValid && checkLength( email, "email", 6, 80 );
bValid = bValid && checkLength( password, "password", 5, 16 );
bValid = bValid && checkRegexp( name, /^[a-z]([0-9a-z_])+$/i, "Username may consist of a-z, 0-9, underscores, begin with a letter." );
// From jquery.validate.js (by joern), contributed by Scott Gonzalez: http://projects.scottsplayground.com/email_address_validation/
var reg = /^(([^<>()[]\.,;:s@"]+(.[^<>()[]\.,;:s@"]+)*)|(".+"))@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}])|(([a-zA-Z-0-9]+.)+[a-zA-Z]{2,}))$/;
bValid = bValid && checkRegexp(email, reg, "eg. smith@hotmail.com");
bValid = bValid && checkRegexp( password, /^([0-9a-zA-Z])+$/, "Password field only allow : a-z 0-9" );
if ( bValid ) {
//DO ajax call
$( this ).dialog( "close" );
}
我收到了这个错误:
我已经尝试了许多正则表达式的例子,但都被解析器捕获了。
答案 0 :(得分:2)
转义]
内部字符类:
var reg = /^(([^<>()[\]\.,;:s@"]+(.[^<>()[\]\.,;:s@"]+)*)|(".+"))@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}])|(([a-zA-Z-0-9]+.)+[a-zA-Z]{2,}))$/;
// here __^ here __^
不确定,但javascript可能也想要转义[
:
var reg = /^(([^<>()\[\]\.,;:s@"]+(.[^<>()\[\]\.,;:s@"]+)*)|(".+"))@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}])|(([a-zA-Z-0-9]+.)+[a-zA-Z]{2,}))$/;
// here __^ here __^
答案 1 :(得分:0)
根据Chirag64所写的内容,服务器可能会错误地运行您的JavaScript代码?第104行可能只是编译器/解释器因错误语言而出错的第一行?您的服务器期望使用哪种编程语言?
您应该尝试将问题代码复制并粘贴到单独的HTML文件中,并在将其直接加载到浏览器(无服务器)时查看它是否会在那里运行。我怀疑它会。