我仍然遇到jQuery代码问题。
我想检查用户在输入中输入内容时字符串中的字符。如果数组中有前一个字符中的任何一个,我想显示“有效”。
var postcodes = ["00-240","80","32","90","91", "8", "11"];
$('input[name="text-391"]').keyup(function(){
var val = this.value;
var m = $.map(postcodes,function(value,index){
var reg = new RegExp('^'+val+'.*$')
return value.match(reg);
});
if(m.length && val.length) {
$('#error').hide(300);
} else {
$('#error').show(300);
}
});
此代码检查输入中的所有用户类型是否在数组中,但我想在信件后检查此字母。
例如:
用户类型:0 - 没关系
用户类型:00 - 仍然可以
用户类型00-340 - 它不行,现在我想显示警告,我们在数组中没有它
用户类型:3 - 没关系
用户类型:35 - 它不行,现在我想显示警告我们没有它在数组中
用户类型80-125 - 它仍然可以 [重要]
用户类型11-1 - 它仍然可以 [重要]
我将非常感谢任何提示。此致
答案 0 :(得分:0)
您必须双向检查:
var m = $.map(postcodes,function(value,index){
var reg = new RegExp('^'+val+'.*$')
var result=value.match(reg);
if (result.length) {
return result;
} else {
reg = new RegExp('^'+value+'.*$')
return val.match(reg);
}
});
如果您首先根据邮政编码创建一个正则表达式数组,然后在回调函数中通过索引引用它们,则可以进一步优化。
答案 1 :(得分:0)
您需要在$.map
if(val.length>2 && val.indexOf("-")>-1 && !(value.indexOf("-")>-1))
val= val.substring(0,val.indexOf("-"))
这是工作DEMO
说明:
您只想检查输入的值长度是否超过两个且它包含-
,并且地图中的值不应包含-
(您需要最后一个字母条件,如“xx-xxx”
由于