2012-01-27 3 views

Respuesta

23

Usted puede dividir una cadena basada en cualquier carácter (como un espacio), a continuación, pasar el primer índice de parseInt

var str = "223 lorem"; 
var num = parseInt(str.split(' ')[0], 10); 

DEMO

Tenga en cuenta que parseInt toma un segundo parámetro, que es la raíz . Si lo dejas, y tratas de analizar un número con un cero inicial, como 09, asumirá que estás en la base 8, y devolverá 0, ya que 09 no es un valor válido de base 8.


O, como señala John, utilizando el + operador unitario es una manera ingeniosa para convertir una cadena en un número:

var str = "223 lorem"; 
var num = +str.split(' ')[0]; 

DEMO

+0

+1, lo único que recomendaría es pasar '10' como segundo parámetro a' parseInt', solo buenas prácticas de OMI. – Chad

+0

@Chad - Debería haberlo sabido mejor - Me he quemado por eso antes de –

+1

@Bcee: Solo digo, el método presentado arriba es puro Javascript porque tu pregunta no tiene nada que ver con jQuery. Entiendo que estás usando jQuery en tu proyecto/tarea, sea lo que sea, pero te sugiero que aprendas Javascript. jQuery no toca los temas enumerados en su pregunta. –

4

probar esto.

var str = "223 Lorem Ipsum Dolor"; 
str = $.trim(str).split(" "); 
var num = parseInt(str[0], 10); 
+0

+1, pero al igual que mi respuesta original, necesita un parámetro radix en su parseInt :) –

2

creo que es mejor usar algo como:

var str = "223 Lorem Ipsum Dolor"; 
var matches = str.match(/(\d+)/); 
result = parseInt(matches[0]); 

Tal vez usted querrá WSE algunos pobres antes de que el \ d +

+1

y un parámetro de raíz :) –

0

probar este ...

function getFirstNumber(str) { 
    var matched = str.match(/^\d+/); 
    if(matched) { 
    return +matched[0]; // Get matched number (as string) and type cast to Number. 
    } 

    console.error("first word is not a number: '" + str + "'."); 
    return -1; 
}; 

var str = "223 lorem"; 

getFirstNumber(str); 
Cuestiones relacionadas