javascript中的Regex和分隔符

Regex and delimiter in javascript

本文关键字:分隔符 Regex 中的 javascript      更新时间:2023-09-26

我不太擅长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

谢谢。

var regex = /^9908:'d{3,}$/;

将与9908完全匹配:后跟3位或更多数字。

Alexander Corwin的回答应该很好。我只是想对他的回答补充一些解释。

您不需要在9908周围使用方括号,因为方括号意味着其中的任何字符都是有效的。因此,您的代码实际上要做的是匹配9、0或8。当你想指定一个文字字符串时,你可以像他那样把它们写出来。

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

此外,当您不创建RegExp对象时,您应该使用缩写JavaScript regex语法,该语法以正斜杠开始和结束。您还可以在结束斜杠后添加一个修饰符,以更改regex的执行方式。例如:

var re = /stackoverflow/g;

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

你的固定线路应该是这样的:

var regex = /^9908:'d{3,}$/;

使用此:

var match = /^9908:[0-9]{3,}$/.test("9908:123");
​alert(match);​