Javascript 在运行时创建动态Rege

Javascript 在运行时创建动态Rege,javascript,dynamic,replace,Javascript,Dynamic,Replace,可以在运行时创建javascript动态正则表达式。我创建这个正则表达式: [+]?\(?800\)?[+ .]?123?[+ .]?1234 对于此800.123.1234号码。此正则表达式可以在页面上以任何格式找到/接受此数字 比如: 它的工作很好,但我需要创建rejex dynamic,这取决于我在输入文本字段中输入的任何数字。以下是我的工作代码示例: 意思是如果我在第页上有两个数字 800.123.1234和855.455.4577 我将这个855.455.4577号添加到输入文本字

可以在运行时创建javascript动态正则表达式。我创建这个正则表达式:

[+]?\(?800\)?[+ .]?123?[+ .]?1234
对于此800.123.1234号码。此正则表达式可以在页面上以任何格式找到/接受此数字 比如:

它的工作很好,但我需要创建rejex dynamic,这取决于我在输入文本字段中输入的任何数字。以下是我的工作代码示例:

意思是如果我在第页上有两个数字 800.123.1234和855.455.4577 我将这个855.455.4577号添加到输入文本字段中 然后正则表达式必须创建动态或解析

[+]?\(?800\)?[+ .]?123?[+ .]?1234

在这个正则表达式中找到这个855.455.4577。

您可以随时使用
新的正则表达式(str)
语法创建自己的正则表达式对象

var str = "[+]?\\(?800\\)?[+ .]?123?[+ .]?1234";
var re = new RegExp(str);
re.exec("800.123.1234");
注意,您可能需要在某些声明上使用双反斜杠,以便在正则表达式构造函数中保留单个反斜杠

但是,如果我真的了解您在做什么,那么可能有一个可以提前创建的正则表达式可以匹配您需要匹配的内容。例如,您可以将列表中的所有电话号码与以下内容匹配:

\+?\(?\d\d\d\)?\.?\d\d\d\.?\d\d\d\d

zero or one plus sign
zero or one left paren
3 digits
zero or one right paren
zero or one period
three digits
zero or one period
four digits
下面是一个JSFIDLE,它根据正则表达式测试所有测试号码,并从每个表单中提取号码,以生成一个规范化电话号码表单:。它使用以下正则表达式:

\+?\(?(\d\d\d)\)?\.?(\d\d\d)\.?(\d\d\d\d)

这与上面的相同,但它也捕获了每组数字,因此我们可以从匹配的结果中仅选择数字。

使用\d where作为数字,可以是0-9中的任何一个。

我不清楚:var str=“[+]?(?800)?[+.]?123?[+.]?1234”;我如何添加数字并创建其rejex。不清楚。谢谢,我理解,这个rejex接受任何像这样的数字:800.524.1358 800.258.1479 555.145.1234我想让我的rejext接受我在输入字段中添加的数字,而不是所有的数字:@user836670-对不起,我不明白你的问题是什么。另外,请将您的用户ID更改为实际名称,以便我们在路径再次交叉时能够相互识别。Jfriend this\+?((\d\d\d))?\。(\d\d)\。(\d\d\d)rejex接受任何这样的数字:800.524.1358 800.258.1479 555.145.1234我希望我的rejext接受我在输入字段中添加的数字,而不是所有数字:我个人认为我不会制作一个包含所有有效数字的巨型正则表达式。使用正则表达式将测试编号解析为各个部分,然后将这些规范化的部分与循环中的有效编号列表进行比较,这样做更有意义。感谢您的回复,但我需要我的rejex动态:现在我的表单使用800.123.1234编号,并在第页上查找/替换该编号,但如果添加此编号:866.135.1245我的rejex必须查找这是第页上的数字,所以如何解析我的rejex中的数字。
\+?\(?(\d\d\d)\)?\.?(\d\d\d)\.?(\d\d\d\d)