如何从字符串中分离出字符串字符和数学字符

时间:2019-01-07 07:10:42

标签: javascript jquery

我想从字符串中分离出字母字符串或数字字符串以及数学字符。 例如-

var test = "test1+test2*3+(test3*6)";
I want to separate it like this - 

var result = ["test1", "+", "test2", "*", "3", "+", "(", "test3", "*", "6",")"];

任何人都可以帮助我获得结果,谢谢。

4 个答案:

答案 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

  • \ w +与任何标记/变量匹配(例如test1,test2等)
  • \ W匹配所有运算符

答案 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!==''}))