如何排除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”和输入过滤器,因为我还需要阻止用户插入新行,谢谢