Javascript Regex匹配逗号分隔的重复字符串

时间:2015-02-23 23:22:20

标签: javascript regex

我需要一个逗号分隔字符串的正则表达式。

ex:“Test1,Test2,Test3,Test1”

基本上:

rgx.test("Test1, Test2, Test3, Test1")
由于存在重复,

应该返回false。

任何帮助?

3 个答案:

答案 0 :(得分:2)

如果您不介意解决方案是函数而不是RegEx,那么这是一个可以正常工作的代码。

function isSetString(str, separator) {
    //TODO input validation
    var arr = str && str.split(separator || ","),
        l = arr && arr.length,
        o = {}; 

    for (var i = 0; i < l; i++) {
        if (o.hasOwnProperty( arr[i] )) {
            return false;
        } else {
            o[ arr[i] ] = true;
        }
    }
    return true;
}

答案 1 :(得分:0)

String s = "test1, test2,test1, ....";
String parts[] = s.split(",");

然后你的所有代币都在parts[]中,你可以遍历它以查看是否有任何匹配。使用嵌套for循环。一个用于遍历每个,另一个用于与数组中前面的那些进行比较

答案 2 :(得分:0)

我会做以下事情:

(?:^|,)([^,]+)(?=.*,\1(?:,|$))

See Regex 101 Demo here.

请注意,我冒昧地从逗号分隔的列表中删除空格。它只会让事情变得更容易。