<script type="text/javascript"> var a="123,223,456,556,789,432,334,505,651,389,011,012"; var b=a.split(","); var c=/^(\d)(\d)\1$/; var d=/^(\d)\1(\d)$/; var e=/^(\d)(\d)\2$/; var m=0; for(var i=0;i<b.length;i++){ if(c.test(b[i])||d.test(b[i])||e.test(b[i])){ alert(b[i]); m++; } } alert(m+"个"); </script> 不嫌麻烦的话可以这样试试 不过貌似够龌龊的 哈
用LINQ操作简单 string number = "123,223,456,556,789,432,334,505,651,389,011,012"; var qnumber1 = number.Split(',').Where(n => n.ToCharArray().Count() > n.ToCharArray().Distinct().Count()); var qnumber2 = number.Split(',').Where(n => n.ToCharArray().Count() == n.ToCharArray().Distinct().Count()); foreach (var q1 in qnumber1) { Response.Write(q1 + "<br/>"); } foreach (var q2 in qnumber2) { Response.Write(q2 + "<br/>"); }
<script type="text/javascript"> function test(value){ var length=value.length; var a=(value.length-value.replace(/([\d]?0[\d]?0[\d]?)|([\d]?1[\d]?1[\d]?)|([\d]?2[\d]?2[\d]?)|([\d]?3[\d]?3[\d]?)|([\d]?4[\d]?4[\d]?)|([\d]?5[\d]?5[\d]?)|([\d]?6[\d]?6[\d]?)|([\d]?7[\d]?7[\d]?)|([\d]?8[\d]?8[\d]?)|([\d]?9[\d]?9[\d]?)/gi,"").length)/3; var b=((length+1)-(a*4))/4; return {xiangtong:a,buxiangtong:b} } var TEST=test("123,223,456,556,789,432,334,505,651,389,011,012"); document.write("相同的有" + TEST.xiangtong + "个;不相同的有:" + TEST.buxiangtong + "个") </script>
var a="123,223,456,556,789,432,334,505,651,389,011,012";
var b=a.split(",");
var c=/^(\d)(\d)\1$/;
var d=/^(\d)\1(\d)$/;
var e=/^(\d)(\d)\2$/;
var m=0;
for(var i=0;i<b.length;i++){
if(c.test(b[i])||d.test(b[i])||e.test(b[i])){
alert(b[i]);
m++;
}
}
alert(m+"个");
</script>
不嫌麻烦的话可以这样试试 不过貌似够龌龊的 哈
var qnumber1 = number.Split(',').Where(n => n.ToCharArray().Count() > n.ToCharArray().Distinct().Count());
var qnumber2 = number.Split(',').Where(n => n.ToCharArray().Count() == n.ToCharArray().Distinct().Count());
foreach (var q1 in qnumber1)
{
Response.Write(q1 + "<br/>");
}
foreach (var q2 in qnumber2)
{
Response.Write(q2 + "<br/>");
}
<script type="text/javascript">
function test(value){
var length=value.length;
var a=(value.length-value.replace(/([\d]?0[\d]?0[\d]?)|([\d]?1[\d]?1[\d]?)|([\d]?2[\d]?2[\d]?)|([\d]?3[\d]?3[\d]?)|([\d]?4[\d]?4[\d]?)|([\d]?5[\d]?5[\d]?)|([\d]?6[\d]?6[\d]?)|([\d]?7[\d]?7[\d]?)|([\d]?8[\d]?8[\d]?)|([\d]?9[\d]?9[\d]?)/gi,"").length)/3;
var b=((length+1)-(a*4))/4;
return {xiangtong:a,buxiangtong:b}
}
var TEST=test("123,223,456,556,789,432,334,505,651,389,011,012");
document.write("相同的有" + TEST.xiangtong + "个;不相同的有:" + TEST.buxiangtong + "个")
</script>
var arx = [], ary = [];
str.replace(/[^,]+/g, function($){
/^(?!.*(.).*\1).+$/.test($) ? arx.push($) : ary.push($);});alert("不同数值总数为:" + arx.length + "(" +arx.join(",") + ")\
\n相同数值总数为:" + ary.length + "(" +ary.join(",") + ")");
\n相同数值总数为:" + (y=str.match(/(?=[^,]*([^,])[^,]*\1)[^,]{3}/g)).length + "(" + y.join(", ") + ")")
哦,那你引用内容里的表达式不就OK了?
var str = "123,223,465,556,789,432,334,505,651,389,011,012";有相同数字的集合(数组) = str.match(/(?=[^,]*([^,])[^,]*\1)[^,]{3}/g); 其总数就是它的length。
无相同数字的集合(数组) = str.match(/(?![^,]*([^,])[^,]*\1)[^,]{3}/g); 其总数就是它的length。如果只要总数不需知道是那些个数的话,也可以只调用上面任意一条正则求相应总数(length属性),再拿总片段数str.split(",").length减去它,就得到另外集合的总数了。
var str = "123,223,465,556,789,432,334,505,651,389,011,012";alert("有相同数字的总数为:" + str.match(/(?=[^,]*([^,])[^,]*\1)[^,]{3}/g).length);
alert("无相同数字的总数为:" + str.match(/(?![^,]*([^,])[^,]*\1)[^,]{3}/g).length);//或者
alert("有相同数字的总数为:" + str.match(/(?=[^,]*([^,])[^,]*\1)[^,]{3}/g).length);
alert("无相同数字的总数为:" + [str.split(",").length - str.match(/(?=[^,]*([^,])[^,]*\1)[^,]{3}/g).length]);
</script>
var zu1 = 0, zu3 = 0, zu6 = 0;st.replace(/(\d)\1\1/g, function (){
zu1++;
return '';
}).replace(/(\d)\1\d|(\d)\d\2|\d(\d)\3/g, function (){
zu3++;
return '';
}).replace(/\d{3}/g, function (){
zu6++;
return '';
});alert(['豹子:' + zu1,'组三:' + zu3, '组六:' + zu6].join('\n'));</script>