Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/215.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何排除android reg表达式中的数字_Android_Regex_Android Edittext - Fatal编程技术网

如何排除android reg表达式中的数字

如何排除android reg表达式中的数字,android,regex,android-edittext,Android,Regex,Android Edittext,我正在验证名称字段,因为有太多国家使用不同的符号作为名字,所以我将通过检查字符中是否有数字来验证字段 private static final String NAME_REGEX = "\\d*"; public static boolean isName(EditText editText) { return isValid(editText, NAME_REGEX) ? false : true; //Match digit pattern return true , me

我正在验证名称字段,因为有太多国家使用不同的符号作为名字,所以我将通过检查字符中是否有数字来验证字段

private static final String NAME_REGEX = "\\d*";

public static boolean isName(EditText editText) {
        return isValid(editText, NAME_REGEX) ? false : true; //Match digit pattern return true , meaning it is not a valid name
    }

public static boolean isValid(EditText editText, String regex) {
    String text = editText.getText().toString().trim();
    return Pattern.matches(regex, text) ? true : false;
}
然而,当我添加一些数字时,这个模式似乎不起作用。它仍然有效,正确的实现方法是什么?非常感谢

就这样做吧

private static final String NAME_REGEX = ".*\\d.";
我想这会有用的。

就这样做吧

private static final String NAME_REGEX = ".*\\d.";

我认为这会起作用。

如果您将EditText设置为inputType为“textPersonName”,则无需验证

android:inputType="textPersonName"
public class MainActivity extends Activity {

    EditText edit;

    InputFilter filter = new InputFilter() {

        @Override
        public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {

            if (source.length() > 0) {
                if (Character.isDigit(source.charAt(0)))
                    return "";
            }
            return null;
        }
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        edit = (EditText) findViewById(R.id.edit);
        edit.setFilters(new InputFilter[] { filter });
    }

}

如果将EditText设置为inputType为“textPersonName”,则无需进行验证

android:inputType="textPersonName"
public class MainActivity extends Activity {

    EditText edit;

    InputFilter filter = new InputFilter() {

        @Override
        public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {

            if (source.length() > 0) {
                if (Character.isDigit(source.charAt(0)))
                    return "";
            }
            return null;
        }
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        edit = (EditText) findViewById(R.id.edit);
        edit.setFilters(new InputFilter[] { filter });
    }

}

不要使用regx。InputFilter是进行此类验证的正确方法

android:inputType="textPersonName"
public class MainActivity extends Activity {

    EditText edit;

    InputFilter filter = new InputFilter() {

        @Override
        public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {

            if (source.length() > 0) {
                if (Character.isDigit(source.charAt(0)))
                    return "";
            }
            return null;
        }
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        edit = (EditText) findViewById(R.id.edit);
        edit.setFilters(new InputFilter[] { filter });
    }

}

不要使用regx。InputFilter是进行此类验证的正确方法

android:inputType="textPersonName"
public class MainActivity extends Activity {

    EditText edit;

    InputFilter filter = new InputFilter() {

        @Override
        public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {

            if (source.length() > 0) {
                if (Character.isDigit(source.charAt(0)))
                    return "";
            }
            return null;
        }
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        edit = (EditText) findViewById(R.id.edit);
        edit.setFilters(new InputFilter[] { filter });
    }

}

强制性:您应该使用InputFilterHanks获取您的信息。我想知道是否有人使用这个号码(是否禁止?)作为他们的名字?@user782104:瑞典有一个案例,但这个名字被法庭驳回。是的,即使是抄写文本也可以。试着让我知道强制性的:你应该使用InputFilterHanks来获取你的信息。我想知道是否有人使用这个号码(是否禁止?)作为他们的名字?@user782104:瑞典有一个案例,但这个名字被法庭驳回。是的,即使是抄写文本也可以。请试着让我知道是的,我同时使用android:singleLine=“true”和输入过滤器,因为我还需要阻止用户插入新行,谢谢,我同时使用android:singleLine=“true”和输入过滤器,因为我还需要阻止用户插入新行,谢谢