如何验证android中的编辑文本是不是有特殊字符?
Posted
技术标签:
【中文标题】如何验证android中的编辑文本是不是有特殊字符?【英文标题】:How to validate edit text in android for special characters?如何验证android中的编辑文本是否有特殊字符? 【发布时间】:2016-01-21 08:32:44 【问题描述】:关于这个话题有很多问题和答案,但我的问题是我的应用程序中有编辑文本,我需要输入一个名称,所以我需要验证我的编辑文本,以避免空格 和 特殊字符 作为唯一名称,并且编辑文本不能为空。没有 textwatcher 怎么办。
【问题讨论】:
具体一点,您需要在每次击键或单击按钮后进行验证? 当我点击添加按钮添加名称时,每当字段为空或字段仅包含特殊字符时,我都需要显示错误消息 if(edittext1.matches("")) e2.setError("无效地址"); 添加 xml 文件->android:inputType="textFilter" 1.什么是特殊字符? 2.你尝试什么? 3.您可以显示没有字符/数字组的键盘 4.正则表达式,如下所示:^(?=.8,20$)(?![.])(?!.*[ i>.]2)[a-zA-Z0-9._]+(?***.com/questions/12018245/… 【参考方案1】:edittext.setFilters(new InputFilter[] new InputFilter()
@Override
public CharSequence filter(CharSequence source, int start, int end,
Spanned dest, int dstart, int dend)
String regex = "a-z~@#$%^&*:;<>.,/+";
if(!dest.toString().contains(" ")||!dest.toString().matches("[" + regex + "]+"))
return null;
);
【讨论】:
【参考方案2】:String username=edittext1.getText().toString();
if(username.matches(""))
edittext1.setError("Invalid ");
添加xml文件
android:inputType="textFilter"
也许会有帮助
【讨论】:
【参考方案3】:你可以使用一个简单的正则表达式
public boolean isValidWord(String word)
return word.matches("[A-Za-z][^.]*");
如果返回值为真,那么你的输入没有特殊的字符或空格。如果为假,它可能有特殊的字符或空格。简单而优雅..
只需在添加您的姓名之前使用字符串参数调用该方法..
【讨论】:
对于所有其他字符,这个答案很好,但对于.
(句号),您的代码不起作用【参考方案4】:
您可以使用输入过滤器来过滤掉特殊字符和空格
edittext.setFilters(new InputFilter[] new InputFilter()
@Override
public CharSequence filter(CharSequence source, int start, int end,
Spanned dest, int dstart, int dend)
String regex = "a-z~@#$%^&*:;<>.,/+";
if(!dest.toString().contains(" ")||!dest.toString().matches("[" + regex + "]+"))
return null;
);
希望对你有帮助..
【讨论】:
以上是关于如何验证android中的编辑文本是不是有特殊字符?的主要内容,如果未能解决你的问题,请参考以下文章
有没有办法突出显示崇高文本或任何其他文本编辑器中的所有特殊重音字符?