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/。
答案 0 :(得分:0)
将正则表达式更改为/\[[\w|\d|\s]*\]/
(方括号)