嗨,我要做一个计算器,我想要一个 +/- 按钮。我想在字符串中获取最新的*
, -
, +
,/
并定义最后一个字符串。
例如:
str="2+3*13"
我希望将其拆分为:
strA="2+3*"
strB="13"
另一个例子:
str="3-2+8"
应拆分为:
strA="3-2+"
strB="8"
嗨,我要做一个计算器,我想要一个 +/- 按钮。我想在字符串中获取最新的*
, -
, +
,/
并定义最后一个字符串。
例如:
str="2+3*13"
我希望将其拆分为:
strA="2+3*"
strB="13"
另一个例子:
str="3-2+8"
应拆分为:
strA="3-2+"
strB="8"
使用lastIndexOf
和子字符串方法之一:
var strA, strB,
// a generic solution for more operators might be useful
index = Math.max(str.lastIndexOf("+"), str.lastIndexOf("-"), str.lastIndexOf("*"), str.lastIndexOf("/"));
if (index < 0) {
strA = "";
strB = str;
} else {
strA = str.substr(0, index+1);
strB = str.substr(index+1);
}
您可以使用正则表达式和拆分方法:
var parts = "2 + 4 + 12".split(/\b(?=\d+\s*$)/);
会给你和数组:
["2 + 4 + ", "12"]
几个测试:
"(2+4)*230" -> ["(2+4)*", "230"]
"(1232-74) / 123 " -> ["(1232-74) / ", "123 "]
"12 * 32" -> ["12 * ", "32"]