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 に答える