简单的正则表达式/:[a-z] /在javascript中没有按预期工作

前端之家收集整理的这篇文章主要介绍了简单的正则表达式/:[a-z] /在javascript中没有按预期工作前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
下面是一个非常简单的正则表达式代码,它在PHPruby中正常工作,但在JS中却没有.请求帮助我让它工作:

var r = /:[a-z]+/
var s = '/a/:b/c/:d'
var m = r.exec(s)

// now m is [":b"]
// it should be [":b",":d"]
// because that's what i get in ruby and PHP

解决方法

使用带有g(全局)修饰符的RegExp. exec()意味着在循环内使用以获取所有匹配.

var str = '/a/:b/c/:d'
var re  = /:[a-z]+/g
var matches;

while (matches = re.exec(str)) {
   // In array form,match is now your next match..
}

您也可以在此处使用String.match()方法.

var s = '/a/:b/c/:d',m = s.match(/:[a-z]+/g);

console.log(m); //=> [ ':b',':d' ]

猜你在找的正则表达式相关文章