相关疑难解决方法(0)

如何在JavaScript正则表达式中访问匹配的组?

我想使用正则表达式匹配字符串的一部分,然后访问该带括号的子字符串:

var myString = "something format_abc"; // I want "abc"

var arr = /(?:^|\s)format_(.*?)(?:\s|$)/.exec(myString);

console.log(arr);     // Prints: [" format_abc", "abc"] .. so far so good.
console.log(arr[1]);  // Prints: undefined  (???)
console.log(arr[0]);  // Prints: format_undefined (!!!)
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?


我发现有什么不对上述正则表达式代码:实际的字符串,我反对是这样的测试:

"date format_%A"
Run Code Online (Sandbox Code Playgroud)

报告"%A"未定义似乎是一种非常奇怪的行为,但它与此问题没有直接关系,所以我开了一个新的,为什么匹配的子字符串在JavaScript中返回"undefined"?.


问题是console.log它的参数就像一个printf语句,因为我正在记录的字符串("%A")有一个特殊的值,它试图找到下一个参数的值.

javascript regex

1277
推荐指数
14
解决办法
72万
查看次数

标签 统计

javascript ×1

regex ×1