根据某些字符和符号将文本字符串转换为数组

时间:2018-12-03 00:15:33

标签: javascript arrays string split

我有一个像这样的字符串:

let str  = "log(5)+sin(5)*π-cos(5)/√(4)*4^2";

我想将其转换为这样的数组:

var newArr = ["log(", "5", ")", "+", "sin(", "5", ")", "*", "π", "-", "cos(", "5", ")", "/", "√(", "4", ")", "*", "4", "^", "2"];

我尝试使用Split,但是没有得到想要的结果

str.split(/(\b)/g)

1 个答案:

答案 0 :(得分:2)

您可以通过正则表达式解决它:

let regex = /[A-Za-z√(]+|\d+|[)]|[+-/*^]|[π]/gm;
let str = `log(5)+sin(5)*π-cos(5)/√(4)*4^2`;
var match = str.match(regex);
console.log(match);

regex101上的详细信息:https://regex101.com/r/wtg3fl/1