我想从字符串中分离出字母字符串或数字字符串以及数学字符。 例如-
var test = "test1+test2*3+(test3*6)";
I want to separate it like this -
var result = ["test1", "+", "test2", "*", "3", "+", "(", "test3", "*", "6",")"];
任何人都可以帮助我获得结果,谢谢。
答案 0 :(得分:6)
您可以使用正则表达式匹配数学字符,也可以匹配数学字符以外的任何其他字符:
var test = "test1+test2*3+(test3*6)";
var result = test.match(/[+*()]|[^+*()]+/g);
console.log(result);
// ->
// ["test1","+","test2","*","3","+","(","test3","*","6",")"]
[+*()]
-匹配单个+
,*
,(
或)
(可随意在此处添加要隔离的任何字符)< / li>
|
-或[^+*()]+
-匹配但这些字符一次或多次答案 1 :(得分:2)
这将提供所需的匹配项: /(\ w + | \ W)/ gm
答案 2 :(得分:0)
CN
答案 3 :(得分:0)
var test = "test1+test2*3+(test3*6)";
var temp=''
var arr=[];
for(var i in test){
if((/[^A-Za-z0-9]/).test(test[i]))
{arr.push(temp)
arr.push(test[i])
temp='';
}
else{
temp+=test[i]
}
}
console.log(arr.filter((value)=>{return value!==''}))