首页 > 解决方案 > 正则表达式:我如何不替换数字?

问题描述

我有一个功能:

export const formatScenarioName = (name) => (
  name.replace(/[^a-zA-Z ]/g, '').replace(/\s/g, '-').toLowerCase()
)

我相信这会删除(空白)空格和特殊字符,并用连字符替换空格。但是,它也在替换数字。我该如何做相反的事情?我想保留数字。

标签: javascriptregex

解决方案


它应该是

export const formatScenarioName = (name) => (
    name.replace(/[^a-zA-Z0-9 ]/g, '').replace(/\s/g, '-').toLowerCase()
)

但你也可以使用\w而不是a-zA-Z0-9你最终得到

/[^\w ]/g

但是它包含_字符https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp


推荐阅读