pax*_*blo 34
如果你想要文字字符串abc或def后面跟着8-11位数,你需要这样的东西:
(abc|def)[0-9]{8,11}
Run Code Online (Sandbox Code Playgroud)
你可以在这里测试一下:http://www.regular-expressions.info/javascriptexample.html
要注意的是,如果你不希望匹配更超过11位,您将需要一个锚(或[^0-9]字符串的结尾).如果它只是8个或更多,可以替换{8,11}使用{8}.
小智 11
要详细说明已发布的答案,您需要全局匹配,如下所示:
var matches = string.match(/(abc|def)\d{8,11}/g);
Run Code Online (Sandbox Code Playgroud)
这将匹配字符串的所有子集:
"g"标志(全局)为您提供所有匹配的列表,而不仅仅是第一个匹配.
在你的问题中,你要求8-11个字符而不是数字.如果它们是数字还是其他字符无关紧要,您可以使用"." 而不是"\ d".
我还注意到,每个示例匹配在"abc"或"def"之后都有超过11个字符.如果有任意数量的数字,那么以下正则表达式可能更适合:
var matches = string.match(/(abc|def)\d*/g);var matches = string.match(/(abc|def)\d+/g);var matches = string.match(/(abc|def)\d{8,}/g);