繁体   English   中英

如何在字符串中找到整个 substring?

[英]How to find whole substring in string?

我有一个字符串,我必须检查该字符串是否包含定义的 substring 我需要做一些工作,否则,我应该返回一些错误。 我有以下代码:

function isContains(myString) {
    let subString = 'test1234';
    if(myString.includes(subString)) {
        // to do some work
    } else {
        // return some error.
    }
}

但问题是如果myString = 'my-string-test1-rrr'它的条件返回 true。 只有当整个subString包含在myString中时,我才能做到这一点?

使用indexOf()代替。

function isContains(myString) {
    let subString = 'test1234';
    if(myString.indexOf(subString) > -1) {
        // to do some work
    } else {
        // return some error.
    }
}

您可以使用正则表达式检查该值是否存在;

示例 1不包含特定字符串

 var test = 'my-string-test1-rrr'; console.log(' test --- ', test.match(/test1234/g))

示例 2

包含特定字符串

 var test = 'my-string-test1234-rrr'; console.log(' test --- ', test.match(/test1234/g))

强烈建议使用includes()而不是indexOf() ,并且 indexOf 会返回您希望立即得到答案的事件的索引 - 如果在搜索的字符串中找到 substring,则返回 false / true。

您的 function 完全符合您的要求。 我建议隔离此 function 的检索并使其更纯净,然后当您返回 boolean 值时,您可以使用它来运行您希望的任何逻辑。 这样你就可以保持这个 function 纯净并更好地分离你的关注点。

我还相信,如果您像在我提供的示例中那样隔离此功能,则调试问题会更容易。

function isContains(myString) {
    let subString = 'test1234';
    let isContains = false;
    if(myString.includes(subString)) {
        isContains = true;
    } else {
        isContains = false;
    }
    return isContains;
}

您可以在代码的稍后阶段像这样使用它:

const myString = 'my-string-test1-rrr';
let shouldRunOtherLogic = isContains(myString);

if (shouldRunOtherLogic) {
    // to do some work
} else {
   // return some error.
}

希望我能提供帮助,如果您有任何进一步的需要,请随时告诉我。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM