今天我们经历了奇怪的模式行为。
例如,在具有 3.2 库存 ROM(以前为 4.0.+)的平板电脑上,它运行良好。
但在其他一些 3.2 平板电脑和 4.0 设备上却没有。
测试电子邮件功能的函数如下:
public static boolean checkEmail(CharSequence emailAddress){
if( Build.VERSION.SDK_INT >= 8 ){
return android.util.Patterns.EMAIL_ADDRESS.matcher(emailAddress).matches();
}
....
所以这就是我在第 16 个电子邮件地址模式(JAVA 代码)来源中的内容:
public static final Pattern EMAIL_ADDRESS
= Pattern.compile(
"[a-zA-Z0-9\\+\\.\\_\\%\\-\\+]{1,256}" +
"\\@" +
"[a-zA-Z0-9][a-zA-Z0-9\\-]{0,64}" +
"(" +
"\\." +
"[a-zA-Z0-9][a-zA-Z0-9\\-]{0,25}" +
")+"
);
这是“标准化”版本:
[a-zA-Z0-9\\+\\.\\_\\%\\-\\+]{1,256}\\@[a-zA-Z0-9][a-zA-Z0-9\\-]{0,64}(\\.[a-zA-Z0-9][a-zA-Z0-9\\-]{0,25})+
正则表达式(JS正则表达式验证器)告诉这个正则表达式大部分是正确的,但是在圆括号中\\.
应该\.
和\\@
应该在正则表达式\@
中工作。
此外还不太清楚,为什么第一个大括号中有两个 '\+' 组符号?