如何在Ext JS文本框中限制特定字符?

3
如何在Ext JS文本字段中限制特定字符(如撇号,!,^等)的输入? 我使用了下面的代码,它只允许输入指定的字符。
{
xtype:"textfield",
maskRe: new RegExp("[a-zA-Z1-9_\s@#$&~`]+$"),
allowBlank : false
}
3个回答

8
为了指定受限字符而非允许字符,只需在方括号内部加入一个 ^ 符号,表示“任何字符除了...”:
maskRe: /[^!\^]/

(= 除了 !^ 之外的任何字符)

另请参见此 fiddle

还请注意,不必使用像+^$这样的运算符,因为与maskRe一起使用的正则表达式是针对每个即将输入的单个字符进行测试,而不是针对字段值进行测试。


2

您需要添加行首锚点^,以便检查完全匹配的字符串,并且您还需要再次转义反斜杠。

new RegExp("^[a-zA-Z1-9_\\s@#$&~`]+$")

感谢@AvinashRaj的快速回复,也非常感谢您将问题更正为更易读的格式。 - Arnav Joshi
接受最有帮助的答案。 - Avinash Raj

1
你可以参考vtype属性来了解Ext Js组件TextField。 vtype

1
这种方法不能防止输入受限制的字符,而是在输入任何受限制的字符时将该字段标记为无效。 - matt

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接