我通过允许特定字符验证带有正则表达式的Edittext 因为我需要允许所有特殊字符输入编辑文本。
允许使用代码
的字母和数字edittext.setFilters(new InputFilter[] { new PartialRegexInputFilter(
"[a-zA-z0-9]+") });
像这样我需要允许所有特殊字符......
我也尝试这样做
edittext.setFilters(
new InputFilter[]
{ new PartialRegexInputFilter(
"[A-Za-z0-9!#$%&(){|}~:;<=>?@*+,./^_`-\'\" \t\r\n\f]+")
}
);` .
但这会给单引号和双引号字符带来错误......
答案 0 :(得分:2)
有什么想要禁止的吗?听起来您正试图允许所有字母数字字符和允许所有非字母数字(即特殊)字符。
以下正则表达式将匹配所有特殊字符:
[^A-Za-z0-9]
答案 1 :(得分:0)
我认为您的第二个模式的问题是字符集中间的连字符const checker = [].includes.bind([1]);
[2,1,3].some(el => checker(el));
。将其移到末尾:
(-)
连字符不能位于中间,因为它们指定了字符范围[a-z]指定了介于a到z之间的所有小写字母。
答案 2 :(得分:0)
使用.*
而不是添加每个特殊字符。
此正则表达式可以匹配所有内容。
如果要从中删除某些字符,请单独使用[^a!c]
,不要使用.*
,以匹配a
,!
以外的所有字符和c
。