为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕哥6287543 2021-10-21 17:10:50
我有一个字符串,我必须检查该字符串是否包含定义的子字符串,我需要做一些工作,否则,我应该返回一些错误。我有以下代码: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?
查看完整描述

3 回答

?
喵喔喔

TA贡献1735条经验 获得超5个赞

使用indexOf()来代替。


function isContains(myString) {

    let subString = 'test1234';

    if(myString.indexOf(subString) > -1) {

        // to do some work

    } else {

        // return some error.

    }

}


查看完整回答
反对 回复 2021-10-21
?
白衣染霜花

TA贡献1796条经验 获得超10个赞

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


示例 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))


查看完整回答
反对 回复 2021-10-21
?
德玛西亚99

TA贡献1770条经验 获得超3个赞

强烈建议使用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.

}

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


查看完整回答
反对 回复 2021-10-21
  • 3 回答
  • 0 关注
  • 205 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信