Javascript 将正则表达式对象分配给html输入模式
我需要以编程方式将regex对象分配给输入元素模式属性。 以下是我目前的执行情况:Javascript 将正则表达式对象分配给html输入模式,javascript,regex,html,Javascript,Regex,Html,我需要以编程方式将regex对象分配给输入元素模式属性。 以下是我目前的执行情况: var regex=/\d{5}/; attr(“pattern”,regex.toString().slice(1,-1); 有没有更好的方法在不进行字符串操作的情况下执行此操作?如果使用jQuery,请使用prop而不是attr。因为在较新版本的jQuery中,attr是只读的,prop是读/写的 element.prop('pattern', regex.toString().slice(1,-1));
var regex=/\d{5}/;
attr(“pattern”,regex.toString().slice(1,-1);
有没有更好的方法在不进行字符串操作的情况下执行此操作?如果使用jQuery,请使用
prop
而不是attr
。因为在较新版本的jQuery中,attr
是只读的,prop
是读/写的
element.prop('pattern', regex.toString().slice(1,-1));
RegExp
实例具有包含其文本的
源属性的值是一个表示当前正则表达式的模式形式的字符串
所以
/\d{5}/.source === "\\d{5}"
所以你的代码可以改成
var regex = /\d{5}/;
element.setAttribute("pattern", regex.source);
什么是
.data()
method?如果你想假设jQuery,你可以直接将正则表达式保存为一个对象……我看不出这有什么错。设置数据属性比设置元素好attr@mkoryak-OP询问html5的模式属性,该属性实际上对输入元素的行为有影响非属性数据属性没有帮助。为什么假设jQuery?它不是标记,也不在问题或代码中。不知道“html5模式”属性。学到了一些东西。您是否使用regex
对象进行其他操作?如果没有,您显然可以直接用element.attr(“pattern”,“\\d{5}”)分配字符串
RegExp
实例有一个包含文本的字符串,因此/\d{5}/.source==“\\d{5}”
@nnnnnn-不需要引用反斜杠,\d{5}
应该这样做(在Firefox中也是这样)。如果您使用html5,为什么不使用该数据api@RobG-在字符串文本中(如我前面的注释中)你需要转义反斜杠,包括在FF中。在正则表达式中,你不能转义反斜杠。(我知道你知道这个…)