正则表达式中的未终止组
Unterminated group in regexp
我尝试在 JavaScript 中使用正则表达式测试字符串。
正确的字符串如下所示:
<script charset="utf-8">new DGWidgetLoader({"width":640,"height":600,"borderColor":"#a3a3a3","pos":{"lat":46.00650100065259,"lon":11.263732910156252,"zoom":9}
我想测试 "width"、"height" 看起来像 xxx 或 xxxx,以及 "lat"、"lon"
看起来像 x{1,2}.x*,缩放看起来像 x{1,2}
我尝试使用这个正则表达式
/<script charset="utf-8">new DGWidgetLoader(/{"width":[0-9]{3,4},"height":[0-9]{3,4},"borderColor":"#a3a3a3","pos":\{"lat":[0-9]{1,2}.[0-9]+,"lon":[0-9]{1,2}.[0-9]+,"zoom":[0-9][0-9]}//
使用 String.search(),但出现错误 SyntaxError: Invalid regular expression: /<script charset="utf-8">new DGWidgetLoader(/{"width":[0-9]{3,4},"height":[0-9]{3,4},"borderColor":"#a3a3a3","pos":{"lat":[0-9]{1,2}.[0-9]+,"lon":[0-9]{1,2}.[0-9]+,"zoom":[0-9][0-9]}//: Unterminated group
如何解析如下所示的脚本标签?
我认为问题出在这里:
... DGWidgetLoader(/{ ....
应该是:
... DGWidgetLoader\(\{ ...
在这种情况下,最后的斜线是不必要的。
编辑:另外,转义最后的 } 标记和其他特殊字符。所以:
/<script charset="utf-8">new DGWidgetLoader\(\{"width":[0-9]{3,4},"height":[0-9]{3,4},"borderColor":"#a3a3a3","pos":\{"lat":[0-9]{1,2}\.[0-9]+,"lon":[0-9]{1,2}\.[0-9]+,"zoom":[0-9][0-9]\}/
这里还有一个小逻辑问题:您的缩放规则正好需要两个数字,而实际上它可以是一个或两个。你应该考虑解决这个问题。
您应该使用 \
:
转义 (
、{
、}
和 .
/<script charset="utf-8">new DGWidgetLoader\(\{"width":[0-9]{3,4},"height":[0-9]{3,4},"borderColor":"#a3a3a3","pos":\{"lat":[0-9]{1,2}\.[0-9]+,"lon":[0-9]{1,2}\.[0-9]+,"zoom":[0-9][0-9]\}/
我尝试在 JavaScript 中使用正则表达式测试字符串。 正确的字符串如下所示:
<script charset="utf-8">new DGWidgetLoader({"width":640,"height":600,"borderColor":"#a3a3a3","pos":{"lat":46.00650100065259,"lon":11.263732910156252,"zoom":9}
我想测试 "width"、"height" 看起来像 xxx 或 xxxx,以及 "lat"、"lon" 看起来像 x{1,2}.x*,缩放看起来像 x{1,2}
我尝试使用这个正则表达式
/<script charset="utf-8">new DGWidgetLoader(/{"width":[0-9]{3,4},"height":[0-9]{3,4},"borderColor":"#a3a3a3","pos":\{"lat":[0-9]{1,2}.[0-9]+,"lon":[0-9]{1,2}.[0-9]+,"zoom":[0-9][0-9]}//
使用 String.search(),但出现错误 SyntaxError: Invalid regular expression: /<script charset="utf-8">new DGWidgetLoader(/{"width":[0-9]{3,4},"height":[0-9]{3,4},"borderColor":"#a3a3a3","pos":{"lat":[0-9]{1,2}.[0-9]+,"lon":[0-9]{1,2}.[0-9]+,"zoom":[0-9][0-9]}//: Unterminated group
如何解析如下所示的脚本标签?
我认为问题出在这里:
... DGWidgetLoader(/{ ....
应该是:
... DGWidgetLoader\(\{ ...
在这种情况下,最后的斜线是不必要的。
编辑:另外,转义最后的 } 标记和其他特殊字符。所以:
/<script charset="utf-8">new DGWidgetLoader\(\{"width":[0-9]{3,4},"height":[0-9]{3,4},"borderColor":"#a3a3a3","pos":\{"lat":[0-9]{1,2}\.[0-9]+,"lon":[0-9]{1,2}\.[0-9]+,"zoom":[0-9][0-9]\}/
这里还有一个小逻辑问题:您的缩放规则正好需要两个数字,而实际上它可以是一个或两个。你应该考虑解决这个问题。
您应该使用 \
:
(
、{
、}
和 .
/<script charset="utf-8">new DGWidgetLoader\(\{"width":[0-9]{3,4},"height":[0-9]{3,4},"borderColor":"#a3a3a3","pos":\{"lat":[0-9]{1,2}\.[0-9]+,"lon":[0-9]{1,2}\.[0-9]+,"zoom":[0-9][0-9]\}/