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

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


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?


慕哥6287543
浏览 206回答 3
3回答

喵喔喔

使用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))

德玛西亚99

强烈建议使用includes()overindexOf()并且进一步 indexOf 返回出现的索引,您希望立即得到答案 - 如果在搜索字符串中找到该子字符串,则为 false / true 。您的功能完全符合您的要求。我建议隔离这个函数的检索并使它更纯,然后当你有返回布尔值时,你可以在之后使用它来运行你想要的任何逻辑。通过这种方式,您可以保持此功能的纯净并更好地分离您的关注点。我还相信,如果您像在我提供的示例中那样隔离这些功能,那么您可以更轻松地调试问题。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.}希望我能帮上忙,如果您有任何进一步的需要,请随时告诉我。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript