Android:接受正则表达式中的所有特殊字符

时间:2012-12-26 11:35:12

标签: java android regex special-characters validation

我通过允许特定字符验证带有正则表达式的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]+") 
    }
);` . 

但这会给单引号和双引号字符带来错误......

3 个答案:

答案 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