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,那就不算,不知道说明白了吗, 要正则应该怎样写
展开
 我来答
Zjmainstay
推荐于2016-05-10 · 知道合伙人互联网行家
Zjmainstay
知道合伙人互联网行家
采纳数:580 获赞数:1129
http://www.zjmainstay.cn

向TA提问 私信TA
展开全部
一时理解错需求,写错了,现在校正一下,谢谢大家指出!

这里提供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
展开全部

三个数需要全部存在吗?

function check(num)
{
    var x1=/.*5.*/, x2 = /.*7.*/, x3 = /.*8.*/;
    if(num.match(x1) && num.match(x2) && num.match(x3))    return true;
    return false;
}
更多追问追答
追问

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
冼慧雅3z
2014-08-11 · TA获得超过177个赞
知道小有建树答主
回答量:330
采纳率:100%
帮助的人:223万
展开全部
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("、"));
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
如同神一般菜鸟
2014-08-10 · TA获得超过633个赞
知道小有建树答主
回答量:589
采纳率:100%
帮助的人:353万
展开全部
为什么不用:长度等于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());
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友76133fe
2014-08-11 · TA获得超过254个赞
知道小有建树答主
回答量:146
采纳率:0%
帮助的人:107万
展开全部
[578][578][578]

若不能解决,可追问,我继续帮你

忘了,JS中表达式好像要这样写 /[578][578][578]/
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式