如果字符串包含完全匹配,则使用javascript返回true

时间:2014-09-10 21:18:26

标签: javascript string-matching indexof

我一直在使用.indexOf('') > -1来检查字符串中是否存在匹配项。我遇到的问题是,当我在多个字符串上执行匹配时,我得到EIFT和EI的字符串匹配(因为EIFT包含EI),因此函数返回true两句话。我需要的是一种方法,如果字符串是“EIFT”,则只返回function eIft的true,而EI则不返回true。

我目前的代码如下,我一直试图想办法解决这个问题但尚未取得任何成功。

function eI(mystring){
    return mystring.indexOf("EI") > -1
}

function eIft(mystring){
    return mystring.indexOf("EIFT") > -1
}

谢谢!

2 个答案:

答案 0 :(得分:1)

如果您在字符串中检查您的值(例如heleilo),那么您需要确认“EI”的正面结果。检查:

function eI(mystrng) {
    return mystring.indexOf("EI") != -1 && !eIFt(mystring);
}

只有当它们不存在于不同的出现时(例如heleileifto),这才有效。在这种情况下,您必须检查以下紧接的字符:

function eI(mystring) {
    var pos = mystring.indexOf("EI");

    if (pos != -1) { // found
        var char1 = mystring[pos + 2];
        var char2 = mystring[pos + 3];

        return char1 !== 'F' && char2 !== 'T';
    }
}

OR

function eI(mystring) {
    var pos = mystring.indexOf("EI");

    if (pos != -1) { // found
        return pos != eIFt(mystring); // they won't have the same index
    }
}

答案 1 :(得分:0)

您可以使用===;这将完全匹配字符串。仅当您检查字符串是否包含另一个字符串时才使用indexOf

function eI (mystring) {
    return mystring === "EI";
}

function eIFt(mystring) {
    return mystring === "EIFT";
}