相关疑难解决方法(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万
查看次数

如何通过不直接在相同类型的字符前面的字符拆分字符串?

假设我有一个字符串:"We.need..to...split.asap".我想要做的是用分隔符分割字符串.,但我只想按第一个 分割,..在后续标记中包含任何重复的s.

预期产量:

["We", "need", ".to", "..split", "asap"]
Run Code Online (Sandbox Code Playgroud)

在其他语言中,我知道这可以通过后视来实现,/(?<!\.)\./但遗憾的是Javascript不支持这样的功能.

我很想知道你对这个问题的答案.也许有一种巧妙的使用前瞻性目前可以避开我?

我正在考虑反转字符串,然后重新转换令牌,但这似乎对我所追求的东西太多了......加上争议:你如何在JavaScript中反转字符串?

谢谢您的帮助!

javascript regex

12
推荐指数
1
解决办法
451
查看次数

标签 统计

javascript ×2

regex ×2