如何使用正则表达式根据javascript中的条件从字符串的开头删除子字符串?

我有一个这样的字符串


term = "Hey there how you doing?"

现在,由于API中的一些问题,我有时会在字符串的开头收到未定义的。


term = "#0undefinedHey there how you doing?"


term = "#1undefined Hey there how you doing?"

现在,我可以通过执行类似操作来检查句子开头是否存在undefined


if(term.indexOf("undefined") == 0) {

    //processing logic

}

但正如你所看到的,有一个存在的地方可以是任何一位数的数字。#nundefinedn


我想要一个正则表达式解决方案,以便它忽略并在句子的开头查找并删除和。#nundefined#nundefined


因此,如果存在,则最终字符串将为undefined


term = "Hey there how you doing?" // removed #nundefined

如何使用正则表达式执行此操作?


红颜莎娜
浏览 102回答 2
2回答

潇潇雨雨

let s = "#0undefined Hello World!";console.log(s.replace(/^\#[0-9]*undefined\s*/,''));const regex = RegExp('^\#[0-9]*undefined');console.log('Has undefined = ' + regex.test(s));

慕村225694

如果 旁边的此数字对您有意义,您可以尝试:undefinedconst matches = "#1undefined Hey there how you doing?".match(/#([0-9]*)undefined ?(.*)/);console.log(matches);这将为您提供下面的数字,而您清理的邮件将位于 。matches[1]matches[2]如果您只关心消息,则可以像其他用户建议的那样使用来清理输出:.replaceconst output = "#1undefinedHey there how you doing?".replace(/#([0-9]*)undefined ?/, '');console.log(output)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript