gpt4 book ai didi

java - Android android.util.Patterns.EMAIL_ADDRESS 奇怪的行为

转载 作者:行者123 更新时间:2023-11-29 21:43:14 33 4
gpt4 key购买 nike

今天我们遇到了奇怪的模式行为。

例如,在带有 3.2 stock 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})+

Regexpal (JS 正则表达式 validator ) 告诉这个正则表达式大部分是正确的,但在圆括号中 \\. 应该是 \.\\@ 应该是 \@ 才能在正则表达式中工作。

而且不太清楚,为什么第一个大括号中有两组'\+'符号?

最佳答案

使用 Pattern.pattern() 函数从正在运行的设备获取 pattern 的值,并从中创建您自己的 Pattern 对象。这样你就不会在不同设备的实现上有差异。 Geocoder 也是如此,它在某些设备上对我不起作用。

关于java - Android android.util.Patterns.EMAIL_ADDRESS 奇怪的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16545974/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com