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这是我的一个输入错误,混淆了内部命名方案的失败。谢谢。上面的图形在帮助可视化匹配方面超出了范围。