我对正则表达式和javascript有些生疏。我有以下字符串变量:
var subject = "javascript:loadNewsItemWithIndex(5, null);";
我想提取 5
使用正则表达式。这是我的正则表达式:
/(?:loadNewsItemWithIndex\()[0-9]+/)
如是:
subject.match(/(?:loadNewsItemWithIndex\()[0-9]+/)
结果是:
loadNewsItemWithIndex(5
什么是最干净、最可读的提取方法 5
作为一个班轮?是否可以通过排除 loadNewsItemWithIndex(
从匹配而不是匹配 5
作为一个小组?
3条答案
按热度按时间xhv8bpkk1#
来自的返回值
String.match
是一个匹配数组,因此您可以在数字部分周围加括号,只检索特定的匹配索引(其中第一个匹配是整个匹配结果,后续条目是针对每个捕获组的):示例代码:http://jsfiddle.net/lt62w/
编辑:感谢@alan对非捕获匹配工作方式的更正。
实际上,它工作得很好。在非捕获组内匹配的文本仍被使用,与在任何组外匹配的文本相同。捕获组类似于具有额外功能的非捕获组:除了分组之外,它还允许您独立于整体匹配提取匹配的内容。
ecbunoof2#
我相信以下正则表达式应该适用于您:
这个问题的症结在于
1wnzp6jl3#
这应足以: