如何在javascript中剪切字符串

时间:2016-02-24 17:01:36

标签: javascript arrays string

我收到了这样的字符串:

"45,21,555,64,94,796,488,\n "   the \n means new line 

有没有办法根据","来剪切字符串?并且只获得"数字"。

我可以做到C但是如何在JavaScript中搜索角色。

感谢任何提示

5 个答案:

答案 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.splitArray.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