4

我需要以编程方式将正则表达式对象分配给输入元素模式属性。以下是我当前的实现:

var regex = /\d{5}/;
element.attr("pattern", regex.toString().slice(1,-1);

有没有更好的方法可以在没有字符串操作的情况下做到这一点?

4

2 回答 2

9

RegExp实例有一个包含其文本的source属性:

source 属性的值是表示当前正则表达式的 Pattern 形式的 String。

所以

/\d{5}/.source === "\\d{5}"

所以您的代码可以更改为

var regex = /\d{5}/;
element.setAttribute("pattern", regex.source);
于 2013-03-19T03:34:59.717 回答
-1

如果您使用的是 jQuery,请prop使用attr. 因为在较新版本的 jQuery 中,attr是只读的,prop是读/写的。

element.prop('pattern', regex.toString().slice(1,-1));
于 2013-03-19T03:01:17.550 回答