首页 > 解决方案 > 从正则表达式替换中删除最后一个符号

问题描述

我尝试使用正则表达式创建一个 slug,但在最后一个字符我尝试输入符号,例如hello world!

这是我的正则表达式

slug.replace(/[^A-Z0-9]+/gi, "-")

像这样的结果

hello-world-

这是我期待的结果

hello-world

所以伙计们,我试图从我的字符串中替换/删除最后一个符号任何解决方案,谢谢

标签: javascriptregex

解决方案


除了A-Z0-9用 a替换所有内容之外-,您还可以A-Z0-9使用所有零件match并将join它们与-

const slugify = str => str.match(/[A-Z0-9]+/gi)?.join('-')

console.log(slugify("hello world!"))

console.log(
  ["¿Lorem ipsum?", "1 sheep 2 sheep", "UPPERCASE a1pha-numeric"].map(slugify)
)


推荐阅读