android - 正则表达式在代码中不匹配,但正则表达式很好
问题描述
所以我有一个正则表达式来验证来自阿根廷的电话号码,这些号码实际上是这种类型
0351 15589834
在这个正则表达式中,我可以写出没有用于缩短数字的 0 和 15 的数字
private fun isValidPhoneNumber(phoneNumber: String):Boolean {
val regex = "/^(?:(?:00)?549?)?0?(?:11|[2368]\\d)(?:(?=\\d{0,2}15)\\d{2})??\\d{8}\$/"
val pattern = Pattern.compile(regex)
val matcher = pattern.matcher(phoneNumber)
return matcher.matches()
}
private fun attachEditTextPhoneListener(){
etxt_verificar_num.addTextChangedListener(object: TextWatcher {
override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
if(isValidPhoneNumber(s.toString())){
enableContinueBtn()
}else{
disableContinueBtn()
}
}
override fun afterTextChanged(s: Editable?) {}
override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {}
})
}
现在,当我开始输入我的数字时,它永远不会验证它们,但我已经检查了正则表达式
/^(?:(?:00)?549?)?0?(?:11|[2368]\\d)(?:(?=\\d{0,2}15)\\d{2})??\\d{8}\$/
在这里 https://regex101.com/ 使用我提供的号码并且它可以工作,为什么它在我的代码中不匹配?
解决方案
推荐阅读
- javascript - 使用多个反应路由器开关会引发 404 错误
- reactjs - react 前端最合适的文件夹布局是什么?
- javascript - 在 Javascript 中循环访问 API 中的对象集合
- php - 如何将 PHP / HTML 表单的副本发送到发件人的电子邮件地址?
- mysql - Mysql left join table2 where field from table3
- node.js - 如何根据包含对象的数组查找文件
- android - Unity 2020 无法将 android APK 更新到 API 级别 29
- php - 不能通过引用传递参数
- python - 处理 Scrapy 中的所有产量项
- python - 为什么 mock.call() 不能接受 self 作为 kwarg?