Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/436.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 正则表达式以匹配其他可选单词_Javascript_Regex - Fatal编程技术网

Javascript 正则表达式以匹配其他可选单词

Javascript 正则表达式以匹配其他可选单词,javascript,regex,Javascript,Regex,我有如下目录字符串: var list = ['/styles/portal/dragonfruit/green.scss', '/styles/portal/version5/blue.scss', '/styles/portal/version5/custom/company.scss', '/styles/portal/version5/custom/industry.scss', '/styles/portal/version5/custom/corporation.scss', '/s

我有如下目录字符串:

var list = ['/styles/portal/dragonfruit/green.scss',
'/styles/portal/version5/blue.scss',
'/styles/portal/version5/custom/company.scss',
'/styles/portal/version5/custom/industry.scss',
'/styles/portal/version5/custom/corporation.scss',
'/styles/portal/version5/admin/green.scss',
'/styles/portal/version5/admin/blue.scss'];
我想从所有字符串中删除起始样式/portal/version5/部分,并可以选择删除custom(如果存在)

处理此列表后的输出将为:

/green.scss
/blue.scss
/company.scss
/industry.scss
/corporation.scss
/admin/green.scss
/admin/blue.scss
使用string.replace方法时,如何选择自定义的单词匹配作为目标

到目前为止,我已经:

var result = item.replace('styles/portal/version5/', '')

您可以使用
未捕获组
,并将其设置为可选

var list=['/styles/portal/dragonfruit/green.scss','/styles/portal/version5/blue.scss','/styles/portal/version5/custom/industry.scss','/styles/portal/version5/custom/corporation.scss','/styles/portal/version5/admin/green.scss','/styles/portal/version5/admin/blue.scss'];
让final=list.map(v=>v.replace(/^\/?styles\/portal\/version5(?:\/custom)?/,“”))

console.log(final)
为什么第一个字符串只剩下
/green.css
?它不应该完好无损吗?
lastIndexOf
可以是你的朋友。@CodeManiac这是我的一个输入错误,混淆了内部命名方案的失败。谢谢。上面的图形在帮助可视化匹配方面超出了范围。