除了html5输入模式属性之外,为什么这个简单的正则表达式无处不在?

时间:2016-04-19 20:30:31

标签: javascript html5

This HTML input颜色本身为红色,表示当输入中的值为“1”时图案不匹配。

net.minecraft.client.entity.EntityClientPlayerMP

当我在别处测试时,正则表达式var inp = document .createElement ('input'); inp .pattern = '^\d+\.?\d*$'; document .getElementById ("foo") .appendChild (inp); 匹配“1”。看起来也应该。

为什么表单元素无法匹配? (火狐)

1 个答案:

答案 0 :(得分:2)

字符串表示,儿子。

您使用pattern属性是正确的,因为您正在使用字符串文字。来自MDN

  

正则表达式语言与JavaScript相同。该   模式不被正斜面包围。

但是,在字符串文字中,你必须在斜杠获得字符串字面意义上的自己的解释之前转义\。如果你将其转义,它将被视为一个实际的斜杠,然后整个模式将被RegExp引擎识别为一个特殊字符。

var inp = document.createElement('input');
inp.pattern = '^\\d+\\.?\\d*$';
document.getElementById("foo").appendChild(inp);

https://jsfiddle.net/qatt3rwt/4/