首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >正则表达式在javascript中失败

正则表达式在javascript中失败
EN

Stack Overflow用户
提问于 2012-06-02 05:23:28
回答 4查看 2.7K关注 0票数 1

我在javascript中有一个如下的regex表达式

代码语言:javascript
运行
复制
var reg = new RegExp("^[(]?[2-9]\d{2}[)]?[\-. :]?[2-9]\d{2}[\-. :]?\d{4}$");
return this.optional(element) || (reg.test(value));

在我的代码中,即使是正确的值,reg.test(值)也会返回false :例如,2222222222或2222222222。所有正则表达式测试程序(特别是this one,它调用相同的方法)都显示正则表达式与表达式匹配。会有什么问题呢?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-06-02 05:26:06

试试这个:

代码语言:javascript
运行
复制
var reg = /^[(]?[2-9]\d{2}[)]?[\-. :]?[2-9]\d{2}[\-. :]?\d{4}$/;
return this.optional(element) || (reg.test(value));

或者也可以:

代码语言:javascript
运行
复制
var reg = new RegExp("^[(]?[2-9]\\d{2}[)]?[\\-. :]?[2-9]\\d{2}[\\-. :]?\\d{4}$");
return this.optional(element) || (reg.test(value));
票数 7
EN

Stack Overflow用户

发布于 2012-06-02 05:25:56

\%s正在被字符串文字吞噬。

您应该改用regex文本:

代码语言:javascript
运行
复制
var reg = /^[(]?[2-9]\d{2}[)]?[\-. :]?[2-9]\d{2}[\-. :]?\d{4}$/;
票数 4
EN

Stack Overflow用户

发布于 2012-06-02 05:26:52

我看到一个潜在的麻烦原因:如果使用RegExp函数创建新的正则表达式,则必须转义反斜杠两次-一次用于JavaScript引擎,一次用于RegEx引擎。

您可以通过执行以下命令来测试这是否造成了问题

代码语言:javascript
运行
复制
var reg = /^[(]?[2-9]\d{2}[)]?[\-. :]?[2-9]\d{2}[\-. :]?\d{4}$/;
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10857537

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档