1 date:function(value){ 2 if(!this.msg('error')) this.msg('error','日期格式不合法'); 3 if(value == "") return true; 4 return /^(?:(?!0000)[0-9]{4}([-/.]?)(?:(?:0?[1-9]|1[0-2])\1(?:0?[1-9]|1[0-9]|2[0-8])|(?:0?[13-9]|1[0-2])\1(?:29|30)|(?:0?[13578]|1[02])\1(?:31))|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)([-/.]?)0?2\2(?:29))$/.test(S.trim(value)); 5 }
在eclipse中,在第4行,return那行报红显示异常,各位大侠帮忙看看那里的问题
提示贴出来呀
Multiple markers at this line
- illegal octal literal digit 8; interpreting it as a
decimal digit
- syntax error
- illegal character
- syntax error
- illegal octal literal digit 8; interpreting it as a
decimal digit
- missing name after . operator
- illegal character
- missing name after . operator
@小锅盖: 试了一下,正则没问题。。
@咦?: 上面几行提示是什么意思?
@小锅盖: 意思是语法有问题,格式不正确之类,有全角字符什么的。但我试了你这正则是对的呀
@咦?: 好吧,那就先不管他了,,谢谢了
@小锅盖: 我擦。。。你这正则式对的但是正则后面的test不对。。
.test(S.trim(value)),里面的S是什么意思、、?是不是要改成value?
@咦?: 下面是所有的代码,,,在这段报错的代码上面也有这种格式的test,但是没有报错
KISSY.add(function (S) { var EMPTY = ""; return { /** * 是否存在值 * @param {String|Array} value 值(可能是输入框、radio、选择框) * @param {String} attr html tag中的属性值 * @param {Promise.Defer} defer 用于异步校验 * @param {Field} field Field的实例 * @return {boolean} */ required:function (value,attr,defer,field) { if(!this.msg('error')) this.msg('error','不可以为空!'); var $target = this.get('target'); var groupEls = ['radio','checkbox']; if(S.inArray($target.attr('type'),groupEls)){ var checked = false; $target.each(function($el){ if($el.prop('checked')){ checked = true; return false; } }) return checked; } return !!S.trim(value); }, /** * 使用正则直接匹配 */ pattern:function (value,attr) { if(!this.msg('error')) this.msg('error','不符合要求'); if(value == "") return true; return new RegExp(attr).test(value); }, /** * 是否是数字 */ number:function(value){ if(!this.msg('error')) this.msg('error','必须是数字'); if(value == "") return true; return /^([+-]?)\d*\.?\d+$/.test(S.trim(value)); }, /** * 最大值验证 */ max:function (value,attr,defer,field) { if(!this.msg('error')) this.msg('error','必须小于'+attr); if(value == "") return true; var $target = this.get('target'); if($target.attr('type') == 'checkbox'){ value = 0; $target.each(function($el){ if($el.prop('checked')) value ++; }) if(!this.msg('error')) this.msg('error','最多只能选择'+attr+'项'); } return Number(value) <= Number(attr); }, /** * 最小值验证 */ min:function (value,attr,defer,field) { if(!this.msg('error')) this.msg('error','必须大于'+attr); if(value == "") return true; var $target = this.get('target'); if($target.attr('type') == 'checkbox'){ value = 0; $target.each(function($el){ if($el.prop('checked')) value ++; }) if(!this.msg('error')) this.msg('error','至少选择'+attr+'项'); } return Number(value) > Number(attr); }, /** * 校验值是否等于属性配置的值 */ equal:function(value,attr,defer,field){ if(!this.msg('error')) this.msg('error','值必须等于'+attr); if(value == "") return true; return S.trim(attr) === S.trim(value); }, /** * 校验二个字段的值是否相同 * @param value * @param attr */ "equal-field":function(value,attr){ if(!this.msg('error')) this.msg('error','二个字段值必须相同!'); if(value == "") return true; var field = this.get('field'); var auth = field.get('host'); if(!auth) return true; var matchFiled = auth.getField(attr); if(!matchFiled) return true; var val = matchFiled.get('target').val(); return S.trim(val) === S.trim(value); }, /** * 新添加的规则1 * 校验一个字段的值必须要小于另一个字段 * @param value * @param attr */ "smaller-field":function(value,attr){ if(!this.msg('error')) this.msg('error','数字大小不合法'); if(value == "") return true; if(isNaN(value)) return true; var field = this.get('field'); var auth = field.get('host'); if(!auth) return true; var matchFiled = auth.getField(attr); if(!matchFiled) return true; var val = matchFiled.get('target').val(); if(val == '') return true; if(isNaN(val)) return true; return Number(S.trim(val)) >= Number(S.trim(value)); }, /** * 新添加的规则2 * 校验一个字段的值必须要小于另一个字段 * @param value * @param attr */ "bigger-field":function(value,attr){ if(!this.msg('error')) this.msg('error','数字大小不合法'); if(value == "") return true; if(isNaN(value)) return true; var field = this.get('field'); var auth = field.get('host'); if(!auth) return true; var matchFiled = auth.getField(attr); if(!matchFiled) return true; var val = matchFiled.get('target').val(); if(val == '') return true; if(isNaN(val)) return true; return Number(S.trim(val)) <= Number(S.trim(value)); }, /** * 新添加的规则3 此规则与bigger-field 一模一样,主要是因为该字段需要与另俩个字段比较,以示区分 * 校验一个字段的值必须要小于另一个字段 * @param value * @param attr */ "bigger-field2":function(value,attr){ if(!this.msg('error')) this.msg('error','数字大小不合法'); if(value == "") return true; if(isNaN(value)) return true; var field = this.get('field'); var auth = field.get('host'); if(!auth) return true; var matchFiled = auth.getField(attr); if(!matchFiled) return true; var val = matchFiled.get('target').val(); if(val == '') return true; if(isNaN(val)) return true; return Number(S.trim(val)) <= Number(S.trim(value)); }, /** * 新添加的规则4 能输入的最长字符串 * @param value * @param attr */ "longest":function(value,attr){ this.msg('error','不能超过'+attr+'个字'); return value.length <= Number(attr); }, /** * 是否符合email格式 * @param value */ email:function(value){ if(!this.msg('error')) this.msg('error','邮箱格式不合法'); if(value == "") return true; return /^(?:\w+\.?)*\w+@(?:\w+\.)+\w+$/.test(S.trim(value)); }, /** * 是否符合手机格式 * @param value */ mobile:function(value){ if(!this.msg('error')) this.msg('error','手机号码格式不合法'); if(value == "") return true; return /^0?\d{9,11}$/.test(S.trim(value)); }, /** * 是否符合电话格式 * @param value */ telephone:function(value){ if(!this.msg('error')) this.msg('error','电话号码格式不合法'); if(value == "") return true; return /^\d{4}-\d{7,8}$|^\d{11}$|^\+86\d{11}$|^0\d{10,12}$|^\d{7,8}$/.test(S.trim(value)); }, /** * 是否符合邮箱、手机登录格式:支付宝账号 * @param value */ alipayAccount:function(value){ if(!this.msg('error')) this.msg('error','支付宝账号格式不合法'); if(value == "") return true; return /^0?\d{9,11}$/.test(S.trim(value))||/^(?:\w+\.?)*\w+@(?:\w+\.)+\w+$/.test(S.trim(value)); }, /** * 是否符合日期格式 * http://blog.csdn.net/lxcnn/article/details/4362500 * @param value */ date:function(value){ if(!this.msg('error')) this.msg('error','日期格式不合法'); if(value == "") return true; return /^(?:(?!0000)[0-9]{4}([-/.]?)(?:(?:0?[1-9]|1[0-2])\1(?:0?[1-9]|1[0-9]|2[0-8])|(?:0?[13-9]|1[0-2])\1(?:29|30)|(?:0?[13578]|1[02])\1(?:31))|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)([-/.]?)0?2\2(?:29))$/.test(S.trim(value)); } }; });
刚看错了,这函数好像没问题。