我需要以编程方式将正则表达式对象分配给输入元素模式属性。以下是我当前的实现:
var regex = /\d{5}/;
element.attr("pattern", regex.toString().slice(1,-1);
有没有更好的方法可以在没有字符串操作的情况下做到这一点?
我需要以编程方式将正则表达式对象分配给输入元素模式属性。以下是我当前的实现:
var regex = /\d{5}/;
element.attr("pattern", regex.toString().slice(1,-1);
有没有更好的方法可以在没有字符串操作的情况下做到这一点?
RegExp
实例有一个包含其文本的source
属性:
source 属性的值是表示当前正则表达式的 Pattern 形式的 String。
所以
/\d{5}/.source === "\\d{5}"
所以您的代码可以更改为
var regex = /\d{5}/;
element.setAttribute("pattern", regex.source);
如果您使用的是 jQuery,请prop
使用attr
. 因为在较新版本的 jQuery 中,attr
是只读的,prop
是读/写的。
element.prop('pattern', regex.toString().slice(1,-1));