Swift 将 javascript 正则表达式转换为 ios 正则表达式

Posted

技术标签:

【中文标题】Swift 将 javascript 正则表达式转换为 ios 正则表达式【英文标题】:Swift convert javascript regualr expression into ios regular expression 【发布时间】:2018-09-24 05:10:32 【问题描述】:

javascript 中的正则表达式:(^04[0-9]8)|(^[0-9]2[0-9]4[0-9]4$)

我正在尝试澳大利亚手机的正则表达式没有验证。如何将此正则表达式转换为 ios 正则表达式?

let Format = "^04[0-9]8)|(^[0-9]2[0-9]4[0-9]4$"
let Predicate = NSPredicate(format: "SELF MATCHES %@", Format)
return Predicate.evaluate(with: fieldText)

【问题讨论】:

用显示您尝试的相关 Swift 代码更新您的问题。清楚地解释您遇到的问题。 您在 Swift 中的 regem 将与在 Java 中相同 我试过那个代码。它不工作 显示你尝试过的代码 我添加了我的代码 【参考方案1】:

我认为您在开头和结尾只缺少括号 ()

let fieldText = "0401234567"
let pattern = "(^04[0-9]8)|(^[0-9]2[0-9]4[0-9]4$)"
let matches = fieldText.range(of: pattern, options: .regularExpression) != nil
print(matches) // true

或者,NSPredicate:

let fieldText = "0401234567"
let pattern = "(^04[0-9]8)|(^[0-9]2[0-9]4[0-9]4$)"
let predicate = NSPredicate(format: "SELF MATCHES %@", pattern)
let matches = predicate.evaluate(with: fieldText)
print(matches) // true

不过,正则表达式看起来仍然很奇怪。

【讨论】:

以上是关于Swift 将 javascript 正则表达式转换为 ios 正则表达式的主要内容,如果未能解决你的问题,请参考以下文章

JS正则表达式验证数字(转)

攻破难啃的骨头-正则表达式(转)

Swift 正则表达式匹配

转 知道这20个正则表达式,能让你少写1,000行代码

无法让 Swift 中的正则表达式匹配“不包含”

在 Swift 3 中使用 switch 语句构造正则表达式