0

嗨,我要做一个计算器,我想要一个 +/- 按钮。我想在字符串中获取最新的*, -, +,/并定义最后一个字符串。

例如:

str="2+3*13"

我希望将其拆分为:

strA="2+3*"

strB="13"

另一个例子:

str="3-2+8"

应拆分为:

strA="3-2+"

strB="8"
4

3 回答 3

3

使用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);
}
于 2013-02-02T15:58:08.027 回答
0

您可以使用replacematch和正则表达式:

str="3-2+8"
strA = str.replace(/\d+$/, "")
strB = str.match(/\d+$/)[0]

console.log(str, strA, strB);
> 3-2+8 3-2+ 8
于 2013-02-02T16:30:04.267 回答
0

您可以使用正则表达式和拆分方法:

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"]
于 2013-02-02T16:34:46.910 回答