寻找可在其间查找数据的JS Regex。和,或'

时间:2016-10-26 14:18:06

标签: javascript jquery regex

我有以下类型的字符串:

ns1.importantClassA,ns1.nonImportantClass
ns2.importantClassB'1[ns2.nonImportantClass1,ns2.nonImportantClass2]

我需要检索重要类的名称(importantClassA,importantClassB)。

我暂时创建了以下代码:

function getData(fullPath)
{
    var retVal = fullPath;
    var endIndex = retVal.indexOf(",");
    var endIndexOption2 = retVal.indexOf("`");
    if (endIndexOption2 != -1 && endIndexOption2<endIndex)
    {
        endIndex = endIndexOption2;
    }

    if (endIndex != -1)
    {
        var startIndex = retVal.lastIndexOf('.',endIndex);
        if (startIndex != -1)
        {
            retVal = retVal.substr(startIndex+1,endIndex-startIndex-1);
        }
    }
    return retVal;
}

但显然正则表达式会简化它。 有什么建议吗?

1 个答案:

答案 0 :(得分:-1)

试试这个正则表达式:

/.(\w+?)[\,|\']/g

代码:

const regex = /.(\w+?)[\,|\']/g;
var str = "ns2.importantClassB'1[ns2.nonImportantClass1,ns2.nonImportantClass2]";
var found = str.match(regex);
if (found !== null) {
    var max = found.length;
    for (var i = 0; i < max; i++) {
        found[i] = found[i].replace(/[,|'|.]/g, "");

    }
}

match()返回正则表达式中匹配的所有字符串(但问题是它包含'。'和“'”或“,”这就是为什么我循环每个匹配并将这些字符替换为“”)。

如果你能找到更好的正则表达式,你可以省略循环部分!