use*_*900 4 javascript regex arrays sorting
我正在尝试获取如下字符串输入:
\n\n{p}This is a paragraph{/p} {img}(path/to/image) {p}Another paragraph{/p}\nRun Code Online (Sandbox Code Playgroud)\n\n返回这样的对象数组
\n\n[\n {"txt" : "This is a paragraph" },\n {"img" : "path/to/image"},\n {"txt" : "Another paragraph"}\n]\nRun Code Online (Sandbox Code Playgroud)\n\n我需要按照找到数组的顺序对数组进行索引 \xe2\x80\x93 即在上面的示例中,第一段获取索引 0,图像获取索引 1 等等。
\n\n我可以使用下面的代码获得很好的字符串,但我不确定如何修改它以循环整个字符串并将对象放在一起。所以任何指示将不胜感激
\n\nvar p = /{p}(.*){\\/p}/gmi;\nvar i = /{img}\\((.*)\\)/gmi;\n\nvar test = "{p} This is a paragraph {/p} {img}(text)";\n\n\nfunction returnJson(test) {\n var ps = p.exec(test);\n var im = i.exec(test)\n var arr = [];\n if (ps.length > 1) {\n arr.push({"txt" : ps[1]})\n } \n if (im.length > 1) {\n arr.push({"img" : im[1]})\n }\n return arr;\n}\nRun Code Online (Sandbox Code Playgroud)\n\n我正在考虑执行一个递归函数,用字符串替换找到的匹配项。但后来我不确定如何按照找到的顺序获取数组。任何提示都非常感激。
\n你可以使用这个正则表达式
/{(\w+)}([^{]+)(?:{\/\1})?/g
Run Code Online (Sandbox Code Playgroud)
exec并使用如下命令创建一个数组:
/{(\w+)}([^{]+)(?:{\/\1})?/g
Run Code Online (Sandbox Code Playgroud)
{(\w+)}获取捕获组的标签名称([^{]+)将内容获取到另一个捕获组(?:{\/\1})?可选地匹配结束标记。(\1指第一个捕获组)| 归档时间: |
|
| 查看次数: |
1929 次 |
| 最近记录: |