Javascript 正则表达式 "replace(/[ -_]/g)"删除数字?

标签 javascript regex node.js

我正在使用 replace javascript 函数在 Javascript 中进行一些测试。

考虑以下在 node REPL 上执行的示例。
这是一个 replace,用于从字符串中删除空格、连字符和下划线。

> "call this 9344 5 66 22".replace(/[ _-]/g, '');
'callthis934456622'

这正是我所期待的。只删除空格。

但是看看这个:

> "call this 9344 5 66 22".replace(/[ -_]/g, '');
'callthis'

为什么当我把这个正则表达式组合完全像这样 -_ (空格、连字符、下划线)时,它会删除字符串中的数字?


我做的更多测试:

-(空格,连字符)不删除数字

_(空格,下划线)不删除数字

_-(空格、下划线、连字符)不删除数字

-_(连字符、下划线、空格)不删除数字

_-(下划线、连字符、空格)REPL block ??

-_(空格、连字符、下划线)会删除数字

最佳答案

[ -_] 表示从 space (ASCII 32) 到 _ (ASCII 95) 的字符,其中包括数字和大写字母。

您正在寻找的是[\-_]。转义 - 将使其表现得像字符而不是范围的元字符。

关于Javascript 正则表达式 "replace(/[ -_]/g)"删除数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21337438/

相关文章:

javascript - 问题 : try connect with a Socket. io 服务器没有使用客户端应用程序的端口

php - 仅从 CSS 中提取路径并排除路径后的任何内容

javascript - 如何在 Webpack Plugin API 中创建模块之前获取入口文件原始源代码

javascript - 变量 jquery 参数名称

javascript - Angular JS-尝试创建视频选择器 "angular way"

javascript - Js slideToggle 不触发点击

javascript - JS 正则表达式从 url 返回字符串

java - 将所有带有 + 符号的数字相加,并将其替换为相加的值

node.js - 在heroku 上启动geddy 失败并出现错误R11(错误绑定(bind))。部署有什么问题?我缺少什么?

node.js - 如何在nodejs中使用superagent语法更改值属性?