javascript - 简单的正则表达式/:[a-z]+/not working as expected in javascript

标签 javascript regex

下面是一个非常简单的正则表达式代码,它在 php 和 ruby​​ 中可以正常工作,但在 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

最佳答案

使用正则表达式 exec() with g(全局)修饰符用于在循环中获取所有匹配项。

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..
}

您也可以使用字符串match()方法在这里。

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

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

关于javascript - 简单的正则表达式/:[a-z]+/not working as expected in javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23970224/

相关文章:

regex - 匹配单词中任意位置的零个或一个特定字符

javascript - 如何在javascript中获取选择框的值?

javascript - Cordova:无论如何在 Javascript 中检测 iOS 应用程序是作为调试还是发布构建的?

javascript - AngularJS ui-mask 添加货币的最大值和最小值

javascript - 如何使用纯 JS 循环遍历数组并以 500 毫秒的间隔显示每个值?

JavaScript 正则表达式匹配

javascript - 将正则表达式量词合并到括号中

java - Java中如何匹配反斜杠?

javascript - 使用 JS 或 Jquery 读取 HTML 注释

regex - REGEXP TCL 中的多个捕获组