我收到了这样的字符串:
"45,21,555,64,94,796,488,\n " the \n means new line
有没有办法根据","来剪切字符串?并且只获得"数字"。
我可以做到C但是如何在JavaScript中搜索角色。
感谢任何提示
答案 0 :(得分:1)
var parts = "45,21,555,64,94,796,488,\n ".split(',').filter(function(val) {
var num = parseInt(val, 10);
return !isNaN(num) && toString.call(num) === '[object Number]';
});
// parts: ["45", "21", "555", "64", "94", "796", "488"]
这将获取您的String并将其拆分为基于分隔符(','
)的数组,然后通过过滤器函数运行它以删除任何未评估为有效数字的内容。
请参阅String.prototype.split
和Array.prototype.filter
。
如果您确实希望将这些值转换为Numbers,则可以链接map
来电:
var parts = "45,21,555,64,94,796,488,\n ".split(',')
.filter(function(val) {
var num = parseInt(val, 10);
return !isNaN(num) && toString.call(num) === '[object Number]';
})
.map(function(val) {
return parseInt(val, 10);
});
// parts: [45, 21, 555, 64, 94, 796, 488]
答案 1 :(得分:1)
是的,就像这样:
var myString = "45,21,555,64,94,796,488,\n ";
var splitStrings = string.split(",");
console.log(splitStrings); //Should log an array to the console, containing only your strings e.g. [45,21,555,64,94,796,488,\n]
这将返回一个字符串数组,按您传入的字符进行拆分。您可以在此处阅读有关此方法的更多信息:http://www.w3schools.com/jsref/jsref_split.asp
之后,您可以解析数组以删除任何您不想要的新行字符,或者使用filter方法进行内联,如另一个答案中所详述
答案 2 :(得分:0)
您可以使用string.split(splitChar)
进行拆分。然后,您可以使用.map
或.filter
将项目转换为数字。
var str = "45,21,555,64,94,796,488,\n ";
var arr = str.split(",");
document.write("Array: <pre>"+JSON.stringify(arr)+"</pre>");
var nums = arr.map(function(item){
return parseInt(item);
});
document.write("Numbers: <pre>"+JSON.stringify(nums)+"</pre>");
答案 3 :(得分:0)
如果您只想将数字作为数组,则可以执行此操作。
var str = "45,21,555,64,94,796,488,\n ";
var arr = str.split(","); //Make the string into an array
var len = arr.length;
for(var i=0;i<len;i++)
{
try
{
arr[i] = parseInt(arr[i]); // convert the numbers to ints
}
catch(e)
{
arr[i] = null;
}
}
答案 4 :(得分:0)
由于字符串只是数组,你可以这样做(在我看来更全面):
function noCommas(a)
{
var b = '';
for (var i = 0; i < a.length; i++)
{
if (a[i] != ',') //&& a[i]!= String.fromCharCode(10)) If you want no new lines too
{
b += a[i];
} else
{
//break; -> In case you only want the first value
}
}
return parseInt(b); //To return the value as an integer
}
noCommas('1234,6789'); // returns 12346789
我很想念这个问题,所以这里是我的固定代码:
function noCommas(a)
{
var b = [];
var tempNum = '';
for (var i = 0; i < a.length; i++)
{
if (a[i] != ',' && i != a.length - 1)
{
tempNum += a[i];
} else
{
b.push(parseInt(tempNum))
tempNum = '';
}
}
return b;
}
现在,如果你noCommas('123,345,324234')[2]
,它将返回324234
。