【问题标题】:Regex bug in Adobe Acrobat Javascript with shorthand character classesAdobe Acrobat Javascript 中带有速记字符类的正则表达式错误
【发布时间】:2013-01-08 22:25:59
【问题描述】:

考虑以下 sn-p:

var regex = /^\d+$/; // equivalent to new RegExp('^\\d+$');

console.println(regex.test('000'));  
console.println(regex.test('abc0')); 
console.println(regex.test('ddd')); 

人们会期望输出是:

true
false
false

但是,当我在运行 JavaScript 1.8 的 Adob​​e Acrobat X 上运行它时,它会输出:

false
false
true

这是怎么回事?

【问题讨论】:

  • 这太疯狂了,但请尝试转义反斜杠。 /^\\d+$/,看看你得到了什么。
  • 这很奇怪。 ^[0-9]+$ 有效吗?
  • I can't reproduce this。我得到了预期的输出。 @FrankieTheKneeMan,不需要转义它,因为它是正则表达式文字。
  • @Blender 是的,这行得通,但我正在尝试使用 \s 字符类。这只是一个例子。
  • @vcsjones - 'Adobe Acrobat X'

标签: javascript regex acrobat


【解决方案1】:

这可能是在通往 Javascript 解释器的途中进行字符串处理的结果,导致您的 \d 被解释为 d。一个额外的反斜杠(显然)可以解决问题。

/^\\d+$/

【讨论】:

  • 这很奇怪。现在/^\d+$/ 工作。我不知道发生了什么,但如果问题再次出现,我知道如何处理它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-13
  • 2018-12-27
  • 2011-04-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多