javascript jquery 正则表达式的一个问题
varstr=newArray(6)arr[0]="875"arr[1]="857"arr[2]="758"arr[3]="785"arr[4]="578"arr[5]=...
var str= new Array(6)
arr[0] = "875"
arr[1] = "857"
arr[2] = "758"
arr[3] = "785"
arr[4] = "578"
arr[5] = "587"
上面是一个数组,现在有一个数是578,想达到的效果是只要上面的数组里有5,7,8这三个数字就算匹配到了,不管它的顺序是578 还是587 875.....只要有这三个数就行,比如我现在给的数是578,那么现在上面数组里的全部内容都算匹配到了,要是我给的是579,那就不算,不知道说明白了吗, 要正则应该怎样写 展开
arr[0] = "875"
arr[1] = "857"
arr[2] = "758"
arr[3] = "785"
arr[4] = "578"
arr[5] = "587"
上面是一个数组,现在有一个数是578,想达到的效果是只要上面的数组里有5,7,8这三个数字就算匹配到了,不管它的顺序是578 还是587 875.....只要有这三个数就行,比如我现在给的数是578,那么现在上面数组里的全部内容都算匹配到了,要是我给的是579,那就不算,不知道说明白了吗, 要正则应该怎样写 展开
5个回答
推荐于2016-05-10 · 知道合伙人互联网行家
关注
展开全部
一时理解错需求,写错了,现在校正一下,谢谢大家指出!
这里提供jQuery和正则实现方法:
<!DOCTYPE html>
<html>
<head>
<title>1924473693841318187</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Language" content="zh-CN" />
</head>
<body>
<table border="1" cellspacing="0" cellpadding="0" id="tablef">
<tr>
<td>024</td>
<td>042</td>
<td>022</td>
<td>420</td>
<td>402</td>
<td>204</td>
<td>240</td>
<td>046</td>
<td>048</td>
<td>049</td>
<td>056</td>
</tr>
</table>
<div style="text-align: center;">
要查询的是:
<input type="text" class="numinput" />
<a href="javascript:;" class="search">查询</a>
</div>
<style>
.highlight {color: red;}
</style>
<script type="text/javascript" src="http://www.zjmainstay.cn/jquery/jquery-1.8.2.min.js"></script>
<script type="text/javascript">
$(".search").click(function(){
var value = $.trim($(".numinput").val()) + '';
if(value == '') return false; //没输入值
// /* //取消注释可禁用
var length = value.length;
//循环预测length次,最后匹配字符必须在查询串里面,增加了022情况的判断
//比如输入048得到:/^(?=^\d*?[048]){3}[048]{3}$/
var patternStr = '^(?=^.*?['+value+']){'+length+'}['+value+']{'+length+'}$';
var pattern = new RegExp(patternStr);
$(".highlight").removeClass("highlight");
$("#tablef td").each(function(){
if($(this).text().match(pattern)) {
$(this).addClass("highlight");
}
});
// */
/* //注释这句可调用
//对字符串排序后结果全等则表明匹配
var sortValue = String.prototype.split.call(value, '').sort().join('');
$(".highlight").removeClass("highlight");
$("#tablef td").each(function(){
if(sortValue === String.prototype.split.call($(this).text(), '').sort().join('')) {
$(this).addClass("highlight");
}
});
// */
});
</script>
</body>
</html>
更多正则问题,请关注:http://www.zjmainstay.cn
2014-08-10
展开全部
var str= new Array(6)
arr[0] = "875";
arr[1] = "857";
arr[2] = "758";
arr[3] = "785";
arr[4] = "578";
arr[5] = "587";
var num="578";//这是变量,换成其他很容易
var reg=new Regex("["+num+"]+");
var matched=[];
for(var i=0;i<str.length;i++){
if(reg.test(str[i])){
matched.push(str[i]);
}
}
alert("匹配结果:"+matched.join("、"));
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
为什么不用:长度等于3&&包含(5)&&包含(7)&&包含(8)
更多追问追答
追问
咋写?
追答
function validate_num(num)
{
var val = num.toString();
return val.length==3 && val.indexOf('5')>-1 && val.indexOf('8')>-1&&val.indexOf('7')>-1;
}
//调用测试:
//alert(validate_num(785).toString());
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
[578][578][578]
若不能解决,可追问,我继续帮你
忘了,JS中表达式好像要这样写 /[578][578][578]/
若不能解决,可追问,我继续帮你
忘了,JS中表达式好像要这样写 /[578][578][578]/
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询