Javascript 将两个字符串模式同时与regex匹配以删除

Javascript 将两个字符串模式同时与regex匹配以删除,javascript,Javascript,一个关于Javascript中字符串操作的快速问题 我有一些以这种模式命名的文件: content_filename content_big_filename 文件名在一个变量中,所以我不能接受最后8个字符。 我需要提取文件名 现在我正在使用 string.replace/\/content\u/,但我还需要支持content\u big 我该怎么做呢?如果它总是下划线后的最后一部分,只需拆分并弹出即可 str.split('_').pop(); document.body.innerHT

一个关于Javascript中字符串操作的快速问题

我有一些以这种模式命名的文件:

content_filename
content_big_filename
文件名在一个变量中,所以我不能接受最后8个字符。 我需要提取文件名

现在我正在使用

string.replace/\/content\u/,但我还需要支持content\u big


我该怎么做呢?

如果它总是下划线后的最后一部分,只需拆分并弹出即可

str.split('_').pop();
document.body.innerHTML+=content_filename1.split'.pop+;
document.body.innerHTML+=content\u big\u filename2.split''pop只要顺序正确,就可以按顺序执行

虽然content_uu将匹配两种情况,但content_ubig_uu将只匹配第二种情况


通过首先查看内容,您不会破坏内容。请检查您随后是否破坏了内容。

如果您想使用正则表达式路径,如您的问题所示,请使用以下命令

string.replace( /content(_big)?_/, '' )
这里有一些文字吗?具体来说是什么?在中,regex定义了一个可以匹配但不是必需的regex块

请注意:如果可以避免使用正则表达式,那么这样做几乎总是一个好主意。有关进一步建议,请参阅

str.substring(str.lastIndexOf("_") + 1)
编辑以获取解释:

子字符串:从两个指定索引之间的字符串中提取字符。如果未指定第二个标记,它将从该标记提取到字符串的末尾

lastIndexOf:返回字符串最后一个uu字符的标记

因此,您要返回的是最后一个uu到字符串末尾的字符串


但是,如果文件名包含一个x,它将不起作用

你想要什么。。提取文件名?你能解释一下吗?string.replace/\/content\u big \?/,会做tricksmart的解决方案,但是如果我有一些文件名中带有下划线的文件,这就不起作用了。不,如果文件名中也包含下划线,它就不会起作用。如果你解释你的答案和它的作用,这对OP和网站的所有其他用户都没有帮助。