给定以下字符串:
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
这里使用。