我正在尝试检查由逗号分隔的数字字符串中的重复项:
var rgx = /* the regex here? */
var str = "1,2,3,4,4,5";
var valid = rgx.test(str);
如果它检测到有重复项,就像在这种情况下有重复一样,我需要有效才能返回false。
对此有何帮助?
答案 0 :(得分:1)
你可以试试下面的正则表达式,
/\b(\d+)\b.*?,\1\b/.test(str);
如果字符串包含重复的数字,则返回true。
示例:强>
> var str = "1,2,3,4,4,5";
undefined
> /\b(\d+)\b.*?,\1\b/.test(str);
true
> var str = "1,2,3,4,5";
undefined
> /\b(\d+)\b.*?,\1\b/.test(str);
false
如果你想让它为包含重复数字的字符串返回false,那么将整个正则表达式置于负向前瞻中。
> var str = "1,2,3,4,4,5";
undefined
> /^(?!.*?\b(\d+)\b.*?,\1\b)/.test(str);
false
> var str = "1,2,3,4,5";
undefined
> /^(?!.*?\b(\d+)\b.*?,\1\b)/.test(str);
true