Bha*_*lli 3 javascript arrays string
输入
((Sass and Javascript) or (Python and Scala))
Run Code Online (Sandbox Code Playgroud)
分隔符 - "("和")"
输出是一个数组,其中分隔符作为元素出现
["(","(","Sass and Javascript",")","or","(","Python and Scala",")",")"]
Run Code Online (Sandbox Code Playgroud)
我面临的问题是这个.
var arr = "((Sass and Javascript) or (Python and Scala))".split(/[(|)]/);
console.log(arr);
document.getElementById("output").innerHTML = arr;Run Code Online (Sandbox Code Playgroud)
<div id="output"></div>Run Code Online (Sandbox Code Playgroud)
当我在字符串上使用split时,我将丢失"("和")"字符,因为它们可能出现在字符串中的任何位置,我将需要手动将它们插入到数组中.在JS中有更好的方法吗?
你可以使用正则表达式
/[()]|[^()]*/g
Run Code Online (Sandbox Code Playgroud)
[()]:匹配(或只匹配)一次|: 要么[^()]:否定类,排除(和)*:匹配前面的类中的零个或多个g:全球比赛演示
var str = '((Sass and Javascript) or (Python and Scala))';
var matches = str.match(/[()]|[^()]*/g) || [];
matches.pop(); // Remove the last empty match from array
console.log(matches);
document.write('<pre>' + JSON.stringify(matches, 0, 2) + '</pre>');Run Code Online (Sandbox Code Playgroud)