javascript - 在字符类中使用 && 运算符

标签 javascript ruby regex

类似这样的东西在 Ruby 中有效,但在 Javascript 中无效:

str = "now is the time"
p str.gsub(/[a-z&&[^aeiou]]/, '*')

注意第二行的&&

[a-z&&[^aeiou]] 有效,但如果您删除整个正则表达式周围的 [] 并具有 a-z&&[^aeiou] 它不会工作。为什么?这仅是 Ruby 独有的吗?我找不到关于此功能的太多信息。

最佳答案

在正则表达式中,&& 是字符类交集的运算符。 Ruby 的正则表达式引擎称为 Oniguruma ,这里是文档的摘录(添加了重点):

Character class

^... negative class (lowest precedence operator)
x-y range from x to y
[...] set (character class in character class)
..&&.. intersection (low precedence at the next of ^)

至于为什么它在 JS 中不起作用我不知道,可能是因为有问题的引擎没有实现这个运算符。例如,在 Java 中它可以工作。

关于javascript - 在字符类中使用 && 运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20825611/

相关文章:

javascript - Angularjs:在 $routeProvider 中使用 'resolve' 时如何显示加载图标?

javascript - jQuery:WAITING $.get() 返回值

ruby-on-rails - Rails 委托(delegate)设置值

Ruby 删除数组的第一个索引

php - 从字符串末尾删除 <br>

java - 正则表达式从字符串中删除圆括号

php - PCRE2 正则表达式错误转义序列在字符类中无效

javascript - PHP/JavaScript : See if someone is visiting the same url

javascript - Snap.svg 沿路径拖动组并保存位置

ruby - 如何在 Ruby 中绑定(bind)套接字?