【发布时间】:2019-07-14 11:25:42
【问题描述】:
我找到了here 的答案,但它在 php.ini 中。
我想匹配像[123, "hehe", "lala"] 这样的数组,但前提是数组语法正确。
我制作了这个正则表达式/\["?.+"?(?:,"?.+"?)*\]/。
问题是如果输入的是[123, "hehe, "lala"],正则匹配,但是语法不正确。
如果数组语法正确,我怎样才能让它只匹配?
我的问题是在匹配第一个 " 时需要第二个 "。
编辑:我只是尝试仅使用数组中的字符串和数字来实现。
【问题讨论】:
-
数组里面的数组呢?你需要处理这些吗?还是只是字符串和数字的数组?
-
您的
.+没有太多限制,只有换行符。此外,您在两侧都缺少锚点^和$。请注意,您还需要确保支持转义序列。尽管可能,但最终对于正则表达式来说几乎不是一份工作。 -
JSON.parse这样做。 -
@str 这就是我刚要建议的...... :)
try { JSON.parse('["one", 1,2]'); console.log("valid"); } catch(e) { console.log("invalid"); } -
JSON 是一个字符串,.. 字符串化的 json 是什么意思?
标签: javascript regex