javascript - 正则表达式替换但忽略最后一个字符
问题描述
我正在尝试替换
/ok/how/are
和
$ok, $how, $are
使用正则表达式
str.replace(/\/([0-9a-zA-Z]+)/g, '\$$1,')
结果是
$ok, $how, $are,
我不能使用另一个语句来删除最后一个前导,
如何在没有最后一个的情况下获得期望的结果,
解决方案
您可以使用两个捕获的组,一个带有字符串锚的结尾,另一个没有锚并相应地替换值
let str = `/ok/how/are`
let final = str.replace(/\/([a-zA-Z\d]+)$|\/([a-zA-Z\d]+)/g, (_, g1, g2) => g1 ? `$${g1}` : `$${g2}, `)
console.log(final)
推荐阅读
- javascript - 如何使用 fetch 处理响应 .json 和 .text?
- sql - 如果 CSV 没有所有表格字段,如何将 CSV 导入表格?
- javascript - React 中的 PrivateRouter 组件
- apache-kafka-streams - 如何为spring kafka流中的多个绑定设置UncaughtExceptionHandlers?
- python - 如何显式查找构建的 Tensorflow 模型并提取模型预测
- google-apps-script - 如何在 AppMaker 的 MultiSelect 小部件中手动设置值?
- python - 如何在我的项目中正确加载 Python 类?
- r - 如何使用 Slurm 在多个节点上发送循环?
- excel - 如何按单独的列有条件地排序?
- java - 在Java中以O(N)而不是O(NlogN)构建堆