如何在javascript中从字符串中获取单个数字
我正在尝试从随机生成的字符串中提取每个单个数字,并将它们存储在数组中,例如:如何在javascript中从字符串中获取单个数字,javascript,arrays,regex,match,Javascript,Arrays,Regex,Match,我正在尝试从随机生成的字符串中提取每个单个数字,并将它们存储在数组中,例如: random string = eejhbf3u4du34uiwe93u8quiwe92oq 我希望我的数组是这样的 number[0] = 3 number[1] = 4 number[2] = 3 number[3] = 4 number[4] = 9 number[5] = 3 number[6] = 8 number[7] = 9 number[8] = 2 我的密码是 var singlenumbers
random string = eejhbf3u4du34uiwe93u8quiwe92oq
我希望我的数组是这样的
number[0] = 3
number[1] = 4
number[2] = 3
number[3] = 4
number[4] = 9
number[5] = 3
number[6] = 8
number[7] = 9
number[8] = 2
我的密码是
var singlenumbers = randomstring.match(/\d+/);
alert(singlenumbers);
任何建议?使用
/g
匹配所有实例:
var singlenumbers = randomstring.match(/\d/g);
如果需要,您可以通过简单的map
调用将每个结果匹配转换为一个数字:
singlenumbers = singlenumbers.map(function (i) { return i | 0 });
移除
+
-他想要一个数字,这是一个相当大的方法:)不要用核武器杀死麻雀!此外,此解决方案还修改了默认字符串对象,对于默认javascript代码段,不建议使用什么?现在我离这个问题禁令还有一段距离。这个解决方案是为那些不想使用regexp的人设计的,因为他们总是忘记它是如何工作的,所以他们大部分时间都放弃了它(就像我自己)@bukart我一直在修改原型没问题。
String.prototype.forEach=Array.prototype.forEach;
String.prototype.getSingleDigits=function(){
var arr=[];
this.forEach(function(e){
if (!isNaN(parseInt(e))) arr.push(e)
});
return arr;
};
alert("sdcia298f9384n29n94".getSingleDigits())