请任何人帮我把这个正则表达式模式从javascript转换成c
please can anyone help me to convert this regular expression pattern from javascript to c#
请有人帮我把这个正则表达式模式从javascript转换成c#
var phonePattern = /^(([^'.'-',a-wy-z](['(]?('+|[x])?'d+[')]?)?['s'.'-',]?(['(]?'d+[')]?)?['s'.'-',]?('d+['s'.'-',]?)+[^'.'-',a-z])|(('+|[x])?'d+))$/i
我需要验证电话号码,我将从文本框中获取值,并将其与regex模式进行比较。我需要特别转换此模式,因为此模式将解决几乎大多数国家/地区的电话模式,如英国、美国、欧洲、印度等。
这是我的c#代码
Regex REphone = new Regex(@" c# pattern here");
if (REphone.IsMatch(TextBox_Phone.Text)) {
// ...
} else {
// ...
}
new Regex(@"^(([^'.'-',a-wy-z](['(]?('+|[x])?'d+[')]?)?['s'.'-',]?(['(]?'d+[')]?)?['s'.'-',]?('d+['s'.'-',]?)+[^'.'-',a-z])|(('+|[x])?'d+))$",
RegexOptions.IgnoreCase);
模式本身是相同的,但在@"
、"
之间引用,而不是在/
、/
之间引用。
RegexOptions.IgnoreCase
使匹配不区分大小写,这相当于JavaScript正则表达式文字末尾的i
标志。
JavaScript使用/
分隔正则表达式,而C#不使用分隔符(您将其作为字符串传入,因此从技术上讲,可以说它由双引号"
分隔)。
此外,在C#字符串中,请记住必须将反斜杠从'
转义为''
。
所以你的正则表达式应该是这样的-
"^(([^''.''-'',a-wy-z]([''(]?(''+|[x])?''d+['')]?)?[''s''.''-'',]?([''(]?''d+['')]?)?[''s''.''-'',]?(''d+[''s''.''-'',]?)+[^''.''-'',a-z])|((''+|[x])?''d+))$"
如果要将其作为字符串文字传递(通过在其前面使用@
),则不需要转义反斜杠。
相关文章:
- Javascript,访问一个主要对象模块模式中的每个对象
- 我是否可以检测到javascript正在被卸载(作为调试模式)
- 包含圆括号的JavaScript Regex模式
- 用于操纵DOM API的Javascript设计模式
- 用javascript创建一个看起来正常分布的模式
- 揭示模块模式(JavaScript) - 这无法访问私有方法
- 匹配每个字符,直到在行首出现模式(JavaScript)
- 用于处理成功、失败、重试的异步请求的设计模式?(JavaScript)
- 模块模式javascript不是函数
- 从自定义模块模式Javascript库调用XMLHttpRequest时不会发生任何事情
- 浏览器中的观察者模式javascript:订阅事件"添加了Dom元素“;并处理这个元素
- IE11在Iframe下的怪癖模式-javascript错误
- 返回具有链接模式javascript的项
- 命令模式 JavaScript 中的执行函数
- gsp下拉值返回NaN在IE7文档模式(javascript)
- 动态模式Javascript
- 保持服务器时间,即使在离线模式(javascript/html5)
- 我如何专业地构建我的模块模式Javascript项目
- 怪癖模式 - JavaScript 不会更新表单选择选项
- 设计模式- JavaScript.安全提取深层(可能不存在)对象属性的通用函数