正则表达式范围内的转义点
Escape dot in a regex range
这两个正则表达式的行为方式相同:
var str = "43gf''..--.65";
console.log(str.replace(/[^'d.-]/g, ""));
console.log(str.replace(/[^'d'.-]/g, ""));
在第一个正则表达式中,我不转义点( .
),而在第二个正则表达式中,我转义( '.
)。
有什么区别?为什么结果是一样的?
点运算符.
不需要在字符类[]
中进行转义。
因为点在字符类内(方括号[]
)。
看看 http://www.regular-expressions.info/reference.html,它说(在字符类部分下):
除 ^-]'' 以外的任何字符将该字符添加到可能的匹配项中 对于字符类。
如果您使用 JavaScript 来测试正则表达式,请尝试 ''.
而不是 '.
。
它以相同的方式工作,因为JS删除了第一个反斜杠。
在 regular-expressions.info 上,它指出:
请记住,点不是字符类中的元字符,所以我们不需要用反斜杠来转义它。
所以我想逃跑是不必要的...
相关文章:
- Angularjs无法将单选按钮与嵌套范围内的模型绑定
- 如何使用D3生成特定范围内的随机颜色
- 将自定义css保持在角度范围内
- Angular JS-文本框未在独立范围内更新
- cookie不在网站范围内
- 获取给定JavaScript范围内的解析函数
- 如何在JavaScript中使用此函数对范围内的所有数字求和
- JavaScript-仅验证数值并且在范围内
- JS:从数组中查找特定范围内的最低/最高数字
- 试图检查表单中的值是否为一个设定范围内的数字
- 在十进制范围内搜索
- 基于日期范围的一组日期范围内的天数
- 如何在 Google 应用脚本中 sendEmail 函数的范围内的唯一非空白列中返回值
- 将数组传递给函数或确保它在范围内
- socket.io 客户端是否必须存在于全局范围内
- 查找某个日期范围内的可用天数
- 网站范围内jQuery/javascript选择器的最佳实践
- 如果指令包含在另一个指令中,我如何在隔离范围内添加双向数据绑定属性
- JS日期对象在某个范围内的百分比
- 正则表达式范围内的转义点