使用_在Javascript中拆分字符串

时间:2013-08-10 05:15:38

标签: javascript

我是javascript初学者。我想创建数组为1,2,3,4,5

但我得到了o / p,1,2,3,4,5

我在javascript中尝试使用.split(),但我没有得到所需的输出。

var string="testrating_1testrating_2testrating_3testrating_4testrating_5";
var temp = new Array();
temp = string.split("testrating_");
for (a in temp ) {
    temp[a] = temp[a];
}

fiddle

8 个答案:

答案 0 :(得分:3)

你可以这样做:

var string = "testrating_1testrating_2testrating_3testrating_4testrating_5",
    temp = string.split('testrating_');

temp.shift(); //remove fist item which is empty 
console.log(temp); //["1", "2", "3", "4", "5"]

答案 1 :(得分:2)

temp的实际值为["","1","2","3","4","5"]。发生这种情况的原因是.split和以分隔符开头的字符串。

如果您始终知道分隔符将位于字符串的开头,则可以执行此操作,这将删除数组的第一个元素:

temp = string.split("testrating_").slice(1);

答案 2 :(得分:1)

你可以试试这个......

<!DOCTYPE html>
<body>

<button onclick="myFunction()">Try it</button>

<script>
function myFunction()
{
var string="testrating_1testrating_2testrating_3testrating_4testrating_5";
var temp = [];
temp = string.split("testrating_");
var tempNew=[];
for (a in temp ) {
   if(temp[a]!==''){
     tempNew.push(temp[a]);
   }

}
alert(tempNew);
}
</script>
</body>
</html>

JSFiddle

答案 3 :(得分:1)

你得到的是1,2,3,4,5,因为在你正在分离的testrating_之前,字符串的开头没有字符。

您可以从第一个位置删除testrating_,如下面的语句

var str="1testrating_2testrating_3testrating_4testrating_5";
str.split("testrating_")

或者您可以在从数组

获取结果后从第一个索引中删除字符
var str="testrating_1testrating_2testrating_3testrating_4testrating_5";
str.split("testrating_").slice(1);

答案 4 :(得分:0)

试试这个:

var string = "testrating_1testrating_2testrating_3testrating_4testrating_5";
var temp = string.split("testrating_").join("").split("").join();
console.log(temp);

也可以这样做:

var temp = string.replace(/testrating_/g,"").split("").join();

或只是:

var string = "testrating_1testrating_2testrating_3testrating_4testrating_5";
var temp = string.match(/[\d]/g);   //your regex here
console.log(temp);

不确定性能。

答案 5 :(得分:0)

var string="testrating_1testrating_2testrating_3testrating_4testrating_5";
// Split and remove first entry and return an array
var final = string.split("testrating_").slice(1);
$('#out').text(JSON.stringify(final));

答案 6 :(得分:0)

这样做:

<!DOCTYPE html>
<body>

<button onclick="myFunction()">Try it</button>

<script>
function myFunction()
{
    var string="testrating_1testrating_2testrating_3testrating_4testrating_5";
    var temp = new Array();
    temp = string.split("testrating_");

    var output = new Array();
    for (x = 0; x < temp.length; x++) {
        output[x - 1] = temp[x];
    }

    alert(output);
}
</script>
</body>
</html>

答案 7 :(得分:0)

您可以随时使用.splice

var string="testrating_1testrating_2testrating_3testrating_4testrating_5";
temp = string.split("testrating_"); // temp = ["","1","2","3","4","5"]
temp.splice(0,1) // temp = ["1","2","3","4","5"]

这里的拼接是指数组中的第一个值(索引#0),并从该点移除一个值,即空字符串“”。

为了给出更多解释,你可以使用splice删除空字符串和“1”,如下所示:

temp.splice(0,2) // temp = ["2","3","4","5"]

请记住,splice会直接影响它所调用的数组,并返回一个已删除的值数组。所以如果你做了以下事情:

values = temp.splice(0,2) // values=["","1"] temp=["2","3","4","5"]

此外,在此示例中,以下列方式创建新数组temp = new Array();是多余的,因为string.split()有效地创建了一个数组并使用已拆分的值填充它。请记住这一点。希望这有助于并欢迎编程世界!