【问题标题】: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._]+(?stackoverflow.com/questions/12018245/…

标签: java android validation


【解决方案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;
                  }
              }
      
          } });
      

      希望对你有帮助..

      【讨论】:

        猜你喜欢
        • 2012-01-26
        • 1970-01-01
        • 1970-01-01
        • 2015-11-04
        • 2020-03-01
        • 2013-05-16
        • 1970-01-01
        • 2014-05-10
        • 2017-09-06
        相关资源
        最近更新 更多