正则表达式模式返回比预期更多的匹配项

时间:2019-01-18 15:16:19

标签: javascript regex

JavaScript中的以下正则表达式应返回在方括号[]之间找到的每个单词。

/\[(\w|\d|\s)*\]/

但是,它还会返回与正则表达式不匹配的第二个结果。在正则表达式测试器中,我仅获得匹配项“ [id]”。但是,在该示例中,它还与“ d”匹配,这是错误的结果。

我似乎不明白为什么。

const title = "Detail boeking [id]"
const titleParameters = title.match(/\[(\w|\d|\s)*\]/);

$.each(titleParameters, function(e, v) {
  $('#test').append("matched value:" + v + "<br>");
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="test">

</div>

有关此问题的有效示例,请参见jsfiddle:https://jsfiddle.net/2vxsjgy6/

1 个答案:

答案 0 :(得分:0)

将正则表达式更改为/\[[\w|\d|\s]*\]/(方括号)