JavaScript 字符串中如何判断有重复数字
发布网友
发布时间:2022-04-22 18:33
我来回答
共4个回答
热心网友
时间:2022-04-22 20:03
一个循环都不用,用正则!
<script>
var s = "123,456,33,123,";
alert(/(?:^|,)(.*,).*,\1/g.test(s)); // true
</script>
---------------------
/(?:^|,)(.*,).*,\1/g
(?:^|,) 意思是文本开头或符号','。。。'?:'表示非获取匹配,只匹配,不存储以备后来使用,
(.*,) 在你的字符串中就表示'123,'之类。。。
.* 任意字符0次或多次
,\1 在你的字符串中表示',123,' 其中\1就是引用(.*,)匹配的内容。
/(?:^|,)(.*,).*,\1/g 就是一个正则直接量,g表示全局搜索
在后面的test就是,RegExp的方法RegExp.test(string),该方法检查在字符串中是否存在一个模式,如果存在则返回 true,否则就返回 false。
不知你明不明白,你应该多看看正则方面的教程,,,,
热心网友
时间:2022-04-22 21:21
var str_in='123,456,33,123';
function if_repeat(str_in){
var str_array=str_in.split(",");
var i=0;
var j=0;
var k=0;
for(i=0;i<str_array.length();i++){
j=str_in.indexOf(str_array[i]);
if(j<k){
break;
return false;
}
k=j;
}
return true;
}
/*
注释:
重点是j<k时,表示重复
自己仔细看吧
*/
热心网友
时间:2022-04-22 22:55
那是一个字符串还是4个?说清楚点,什么样算重复,什么样不重复
热心网友
时间:2022-04-23 00:47
用正则表达式吧``