次の文字列を指定します。
var myString = "s1a174o10";
次の結果が欲しいです。
var s = 1;
var a = 174;
var o = 10;
文字列の各文字は、次の数字に一致します。
文字列は静的ではないことに注意してください。別の例を次に示します。
var myString = "s1p5a100";
次の文字列を指定します。
var myString = "s1a174o10";
次の結果が欲しいです。
var s = 1;
var a = 174;
var o = 10;
文字列の各文字は、次の数字に一致します。
文字列は静的ではないことに注意してください。別の例を次に示します。
var myString = "s1p5a100";
正規表現を使用できます。
var ITEM = /([a-z])(\d+)/g;
次に、各一致をオブジェクトに入れます。
var result = {};
var match;
while(match = ITEM.exec(myString)) {
result[match[1]] = +match[2];
}
result.s
、result.a
、およびを使用できるようになりresult.o
ました。
正規表現でこれを行うことができます:
var vars = {};
myString.replace(/(\D+)(\d+)/g, function(_,k,v){ vars[k] = +v });
console.log(vars); //=> {s: 1, a: 174, o: 10}
正規表現はあなたを助けることができます...
var myString = "s1a174o10";
var matches = myString.match(/([a-zA-Z]+)|(\d+)/g) || [];
for(var i = 0; i < matches.length; i+=2){
window[matches[i]] = matches[i+1];
}
警告: s、a、o はここではグローバルになります。必要に応じて、ここで使用する代わりにオブジェクトを宣言できます window
。