我有一个这样的字符串term = "Hey there how you doing?"现在,由于API中的一些问题,我有时会在字符串的开头收到未定义的。term = "#0undefinedHey there how you doing?"或term = "#1undefined Hey there how you doing?"现在,我可以通过执行类似操作来检查句子开头是否存在undefinedif(term.indexOf("undefined") == 0) { //processing logic}但正如你所看到的,有一个存在的地方可以是任何一位数的数字。#nundefinedn我想要一个正则表达式解决方案,以便它忽略并在句子的开头查找并删除和。#nundefined#nundefined因此,如果存在,则最终字符串将为undefinedterm = "Hey there how you doing?" // removed #nundefined如何使用正则表达式执行此操作?
2 回答
潇潇雨雨
TA贡献1833条经验 获得超4个赞
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
TA贡献1880条经验 获得超4个赞
如果 旁边的此数字对您有意义,您可以尝试:undefined
const matches = "#1undefined Hey there how you doing?".match(/#([0-9]*)undefined ?(.*)/);
console.log(matches);
这将为您提供下面的数字,而您清理的邮件将位于 。matches[1]matches[2]
如果您只关心消息,则可以像其他用户建议的那样使用来清理输出:.replace
const output = "#1undefinedHey there how you doing?".replace(/#([0-9]*)undefined ?/, '');
console.log(output)
添加回答
举报
0/150
提交
取消