正则表达式给出边缘但不是铬的意外量词
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则表达式给出边缘但不是铬的意外量词相关的知识,希望对你有一定的参考价值。
我有几个正则表达式在chrome中运行得很好但不在边缘或Internet Explorer中。在浏览器上调试时,它会出现意外量词错误。此错误的输入为89 9 5。有什么想法吗?
var fps1 = new RegExp(
"(?<Unit>[a-p])\W*(?<Section>\d+)\W+(?<LatDegrees>\d+)-(?<LatMinutes>\d+)\W+(?<LongDegrees>\d+)-(?<LongMinutes>\d+)");
var dls1 = new RegExp(
"[/-](L[a-z]*)?\W*(?<Lsd>\d+)\W*(S[a-z]*|\W)\W*(?<Section>\d+)\W*(T[a-z]*|\W)\W*(?<Township>\d+)\W*(R[a-z]*|\W)\W*(?<Range>\d+)\W*([WM][a-z]*|\W)\W*(?<Meridian>\d)\b");
var dls2 = new RegExp(
"(L[a-z]*)?\W*(?<Lsd>\d+)\W*(S[a-z]*|\W)\W*(?<Section>\d+)\W*(T[a-z]*|\W)\W*(?<Township>\d+)\W*(R[a-z]*|\W)\W*(?<Range>\d+)\W*([WM][a-z]*|\W)\W*(?<Meridian>\d)\b");
var dls3 = new RegExp(
"(S[a-z]*)?\W*(?<Section>\d+)\W*(T[a-z]*|\W)\W*(?<Township>\d+)\W*(R[a-z]*|\W)\W*(?<Range>\d+)\W*([WM][a-z]*|\W)\W*(?<Meridian>\d)\b");
var dls4 = new RegExp(
"(T[a-z]*)?\W*(?<Township>\d+)\W*(R[a-z]*|\W)\W*(?<Range>\d+)\W*([WM][a-z]*|\W)\W*(?<Meridian>\d)\b");
var nts1 = new RegExp(
"(?<Quarter>[abcd])\W+(?<Unit>\d+)\W+(?<Block>[abcdefghijkl])/(?<Sheet>\d+)\W+(?<Subdivision>[abcdefghijklmnop])\W+(?<Sixteenth>\d+)");
var nts2 = new RegExp(
"(?<Unit>\d+)\W+(?<Block>[abcdefghijkl])/(?<Sheet>\d+)\W+(?<Subdivision>[abcdefghijklmnop])\W+(?<Sixteenth>\d+)");
var nts3 = new RegExp(
"((?<Block>\w)/)?(?<Sheet>\d+)\W+(?<Subdivision>[abcdefghijklmnop])\W+(?<Sixteenth>\d+)");
当使用Edge调试工具时,它不会超过第一个正则表达式,javascript执行只是停止,开发人员窗口中的错误只是意外的量词,没有其他提示。
答案
这里的问题是JavaScript不支持命名组,但在chrome中运行时除外。要解决这个问题,我只需要删除所有已命名的组语法。
删除?<NAMED_GROUP>
以上是关于正则表达式给出边缘但不是铬的意外量词的主要内容,如果未能解决你的问题,请参考以下文章