Javascript 为什么除了html5输入模式属性之外,这个简单的正则表达式在任何地方都可以工作?
当输入值为“1”时,颜色本身为红色,表示图案不匹配 当我在别处测试时,正则表达式与“1”匹配。看起来也应该这样Javascript 为什么除了html5输入模式属性之外,这个简单的正则表达式在任何地方都可以工作?,javascript,html,Javascript,Html,当输入值为“1”时,颜色本身为红色,表示图案不匹配 当我在别处测试时,正则表达式与“1”匹配。看起来也应该这样 为什么表单元素不匹配?(Firefox。)字符串表示法,儿子 模式属性的用法是正确的,因为您使用的是字符串文本。发件人: 正则表达式语言与JavaScript相同。这个 图案不被前斜杠包围 但是,在字符串文字中,在斜杠获得其自己的字符串文字意义的li'l解释之前,必须对\进行转义。如果您转义它,它将被视为一个实际的斜杠,然后整个模式将被RegExp引擎识别为一个特殊字符 var inp
为什么表单元素不匹配?(Firefox。)字符串表示法,儿子 模式属性的用法是正确的,因为您使用的是字符串文本。发件人: 正则表达式语言与JavaScript相同。这个 图案不被前斜杠包围 但是,在字符串文字中,在斜杠获得其自己的字符串文字意义的li'l解释之前,必须对
\
进行转义。如果您转义它,它将被视为一个实际的斜杠,然后整个模式将被RegExp引擎识别为一个特殊字符
var inp = document.createElement('input');
inp.pattern = '^\\d+\\.?\\d*$';
document.getElementById("foo").appendChild(inp);
字符串表示法,儿子 模式属性的用法是正确的,因为您使用的是字符串文本。发件人: 正则表达式语言与JavaScript相同。这个 图案不被前斜杠包围 但是,在字符串文字中,在斜杠获得其自己的字符串文字意义的li'l解释之前,必须对
\
进行转义。如果您转义它,它将被视为一个实际的斜杠,然后整个模式将被RegExp引擎识别为一个特殊字符
var inp = document.createElement('input');
inp.pattern = '^\\d+\\.?\\d*$';
document.getElementById("foo").appendChild(inp);
反斜杠需要以字符串文本形式转义-但不能以HTML属性或正则表达式文本形式转义。反斜杠需要以字符串文本形式转义-但不能以HTML属性或正则表达式文本形式转义。@Christoph:我更喜欢第一版:-)有趣-是的,教育性-嗯…@Christoph,Bergi希望你们现在都很开心。:)(你编辑答案时我还在编辑Christoph。我想这会教我先给出代码,然后添加解释。)@Christoph:我更喜欢第一次修订:-)有趣-是的,有教育意义-嗯…@Christoph,Bergi希望你们现在都很开心(当你编辑答案Christoph时,我还在编辑。我想这会教我先给出代码,然后添加解释。)