我需要使用jquery / javascript regex验证验证以下格式。
使用代码在java正则表达式中完成:
"(\\d{1,2})?\\s?\\[\\d{3}\\]\\s?\\d{4}-?\\d{4}"
但现在需要在客户端使用javascript / jquery。
以下是样本:
1) 1 [123] 1234-5678
2) 1[123] 1235-5678
3) 1[123]1236-5678
4) 1 [123]1237-5678
5) 1 [123] 12385789
6) 1[123]12341678
7) 1 [123]12345678
8) 1[123] 1234-5678
9) [123] 1234-5678
10) [123]1234-5678
11) [123]12345678
12) [123] 12345678
它基本上是数字,方括号,短划线的组合, 这里的数字&方括号必须存在,但破折号( - )可能会也可能不存在。
只有数字&方括号可以允许,没有其他字符
感谢任何帮助。
答案 0 :(得分:0)
在JS中,您可以使用RegExp对象文字,这意味着您不需要转义反斜杠字符。可以通过两个正斜杠字符包围正则表达式来创建RegExp对象文字:
原始正则表达式:
"(\\d{1,2})?\\s?\\[\\d{3}\\]\\s?\\d{4}-?\\d{4}"
在JavaScript中为RegExp对象分配变量:
var myRegex = /(\d{1,2})?\s?\[\d{3}\]\s?\d{4}-?\d{4}/;
要添加到正则表达式(g,i,m,y)的任何标志应直接在终止正斜杠之后。例如:
/(\d{1,2})?\s?\[\d{3}\]\s?\d{4}-?\d{4}/gm
另一种方法是以字符串形式获取原始正则表达式并将其传递给RegExp构造函数,但这仅建议用于动态正则表达式而不是静态表达式:
var myRegex = new RegExp('(\\d{1,2})?\\s?\\[\\d{3}\\]\\s?\\d{4}-?\\d{4}');
您也可以选择将第二个参数传递给此构造函数,该构造函数接受一串标记。
可以找到有关创建和使用RegExp对象的更多文档here。
答案 1 :(得分:0)
JavaScript在字符串中使用实际的RegExp而不是它。您可以使用RegExp
类将其转换为正则表达式:
var regex = new RegExp("(\\d{1,2})?\\s?\\[\\d{3}\\]\\s?\\d{4}-?\\d{4}");
regex
现在拥有你的正则表达式。使用此方法,您可以将regex替换为第四个,而无需修改它们。 Javascript还支持RegEx,前面有/
,结尾。
var regex = /(?:This\sIs\sMy\sRegex)/flags;