Javascript正则表达式无法正常工作

时间:2017-07-19 16:18:16

标签: javascript regex

我正在尝试获取' null之间的任何字符串['和']' ,但对于一些长篇字符串,它立即丢失并打印文本,直到一些随机的']' 但是,如果我缩短那个字符串,它的工作正常,

如何才能直接找到文字,而不是直到某些随机的']'?

例如。

"值":" vale0 [var0]""空[第一]""值":&#34 ; vale2 [VAR1]""值":" vale3 [VAR3]"

<html>
<head>
    <title>Untitled</title>
     <script type="text/javascript">
      function run(){
            code = document.getElementsByTagName("html")[0].innerHTML;
            results = code.match(/null\[(\S*)\","/g);
            for (i=0;i<results.length;i++) {
            value = results[i].match(/null\[(\S*)\","/);
            alert (value[1])
    }
}
</script>
</head>
<body onload="run()">
        registerFragment("qweeqeqw","null[country-      name-IR_1]","AI_0_1264":"Anguilla[country-name-AI_18096]</body>
</body>
</html>

1 个答案:

答案 0 :(得分:0)

看起来你的正则表达式有点不完整。如果您想要两个已知序列之间的最小匹配字符,请将?运算符添加到*。这将使*运算符&#34;非贪婪。&#34;

null\[(\S*?)\","

但是,在此版本中,结束括号将包含在匹配的组中。如果要将结束括号保留在匹配项之外,请同时添加该字符。 (此处,我还会在第一个\之前替换",因为没有必要逃避"。)

null\[(\S*?)]","

而且,此时,您甚至不需要检查","序列,因为结束]应该自行完成工作:

null\[(\S*?)]

regex101.com example