Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.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 将正则表达式对象分配给html输入模式_Javascript_Regex_Html - Fatal编程技术网

Javascript 将正则表达式对象分配给html输入模式

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));

我需要以编程方式将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));

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中。在正则表达式中,你不能转义反斜杠。(我知道你知道这个…)