21
如何在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 (!!!) 我究竟做错了什么? 我发现上面的正则表达式代码没有任何问题:我正在测试的实际字符串是: "date format_%A" 报告“%A”未定义似乎是一个非常奇怪的行为,但与该问题没有直接关系,因此我打开了一个新的代码,为什么匹配的子字符串在JavaScript中返回“未定义”?。 问题在于console.log它的参数就像一条printf语句一样,并且由于我正在记录的字符串("%A")具有特殊值,因此它试图查找下一个参数的值。
1368
javascript
regex