Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/90.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么除了html5输入模式属性之外,这个简单的正则表达式在任何地方都可以工作?_Javascript_Html - Fatal编程技术网

Javascript 为什么除了html5输入模式属性之外,这个简单的正则表达式在任何地方都可以工作?

Javascript 为什么除了html5输入模式属性之外,这个简单的正则表达式在任何地方都可以工作?,javascript,html,Javascript,Html,当输入值为“1”时,颜色本身为红色,表示图案不匹配 当我在别处测试时,正则表达式与“1”匹配。看起来也应该这样 为什么表单元素不匹配?(Firefox。)字符串表示法,儿子 模式属性的用法是正确的,因为您使用的是字符串文本。发件人: 正则表达式语言与JavaScript相同。这个 图案不被前斜杠包围 但是,在字符串文字中,在斜杠获得其自己的字符串文字意义的li'l解释之前,必须对\进行转义。如果您转义它,它将被视为一个实际的斜杠,然后整个模式将被RegExp引擎识别为一个特殊字符 var inp

当输入值为“1”时,颜色本身为红色,表示图案不匹配

当我在别处测试时,正则表达式与“1”匹配。看起来也应该这样


为什么表单元素不匹配?(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时,我还在编辑。我想这会教我先给出代码,然后添加解释。)