在JavaScript中的正则表达式和分隔符

Osc*_*car 0 javascript regex

我对正则表达式不是很好,我需要一些帮助而且我被卡住了......

这就是我得到的:

编辑:现在工作正常,看看......

http://jsfiddle.net/oscarj24/qrPHk/1/

这就是我需要的:

// First 4 numbers must be always 9908
// After the 4 first numbers must be a : as delimiter
// After the delimiter...
// - the allowed values are just numbers from 0-9
// - the min. length is 3
// - the max. length is infinite
// RESULT:
// - Valid: 9908:123 or 9908:123456...
// - Invalid: 9908:12 or 9908:xyz
Run Code Online (Sandbox Code Playgroud)

谢谢.

Ale*_*win 9

var regex = /^9908:\d{3,}$/;
Run Code Online (Sandbox Code Playgroud)

将完全匹配9908:后跟3位或更多位数.


Mik*_*ics 5

Alexander Corwin的答案应该可以正常使用.我只想为他的回答添加一些解释.

9908周围不需要方括号,因为方括号表示其中的任何字符都有效.那么你的代码实际上要做的是匹配9,0或8.当你想指定一个文字字符串时,你可以像他一样写出来.

然而,忽略这一点,我看到的第二个问题是你使用了错误的量词语法来指定9908段的长度.您需要使用花括号来指定特定的长度范围,例如代码中的{3,}.括号仅用于创建序列组和反向引用.

此外,当您不创建RegExp对象时,您应该使用以正斜杠开始和结束的速记JavaScript正则表达式语法.您还可以在结束斜杠后添加修饰符,以更改正则表达式的执行方式.例如:

var re = /stackoverflow/g;
Run Code Online (Sandbox Code Playgroud)

'g'表示它可以在主题字符串上多次匹配.还有其他几个修饰符,您可以在这里找到更多信息:http://www.regular-expressions.info/javascript.html

您的固定行应如下所示:

var regex = /^9908:\d{3,}$/;
Run Code Online (Sandbox Code Playgroud)