javascript - 在javascript中使用正则表达式解析数组语法

标签 javascript regex

我找到了这个问题的答案 here但它是在 php 中。

我想匹配像 [123, "hehe", "lala"] 这样的数组,但前提是数组语法正确。

我制作了这个正则表达式 /\["?.+"?(?:,"?.+"?)*\]/.

问题在于,如果输入是[123, "hehe, "lala"],则正则表达式匹配,但语法不正确。

如何才能使其仅在数组语法正确的情况下匹配?

我的问题是当第一个 " 匹配时需要第二个 "

编辑:我只是尝试仅使用数组内的字符串和数字来执行此操作。

最佳答案

您可以尝试这个正则表达式:/\[((\d+|"([^"]|\\")*?")\s*,?\s*)*(?<!,)\]/

每个项目应该是

"([^"]|\\")*?" :以“开头和结尾,包含除”以外的任何内容。如果包含 ",则应将其转义 (\")。

\d+ :一个数字

每个项目之后应该是

\s*,?\s* : 一个逗号,前后可以有任意数量的空格。

并且右括号之前不应该是逗号:(?<!,)

演示:https://regex101.com/r/jRAQUc/1

关于javascript - 在javascript中使用正则表达式解析数组语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54791987/

相关文章:

javascript - 循环中的 jquery 事件处理程序

javascript - graphql-js 和 express 的自定义错误

javascript - 将带点的字符串转换为用于访问 javascript 中的嵌套对象的指令

java - Java 中 MetaMap 的正则表达式

javascript - 日期时间选择器不工作

javascript - 如何将 html 脚本变量传递给 Controller ​​?

c# 根据正则表达式突出显示 rtb 文本颜色

python - 如何根据两个字符串列的差异在 pandas 中创建一个新列?

python - 正则表达式摆脱有条件的最后一项

c - 正则表达式 C - 缺少匹配项?