2011-09-08 20 views
7

Si hay una cadena aleatoria llegar desde un servidor:¿Cómo contar el número de letras en una cadena aleatoria?

var str='I am a student in XXX university, I am interested...' 

El str pueden contener números aleatorios de palabras con espacios. Ese es el contenido de la cadena es impredecible.

en JavaScript, cómo contar el número de letras en la cadena (espacios entre las palabras sonexclusiva del conteo). Por ejemplo, "Tengo un automóvil" debe contar 9 letras.

Respuesta

15

Suponiendo solo deseas caracteres alfabéticos, deshacerse de los otros personajes primero utilizando replace():

var str='I am a student in XXX university, I am interested...'; 

alert(str.replace(/[^A-Z]/gi, "").length); 

Puede añadir 0-9 a la clase [^A-Z] personaje si quiere contar números como letras. Si sólo desea eliminar espacios en blanco, cambiar la expresión regular para /\s/g

+0

¿Qué pasa si me gustaría aprovechar el espacio en cuenta? – Mellon

+0

@Mellon: si desea incluir espacios pero excluye otros signos de puntuación, cambie la clase de caracteres a '[^ A-Z]'. –

7

Dividimos cada espacio y unirse a la matriz de nuevo:

var str='I am a student in XXX university, I am interested...' 

str = str.split(" ").join(""); 

alert(str.length); 

http://jsfiddle.net/AwVBJ/

+1

¿Es una ',' una carta también ahora? : P – Andrew

+1

@Andrew: para ser justos, el OP solo mencionó espacios explícitamente. Sin embargo, es probable que tampoco quiera contar la otra basura. –

2

Y sin embargo, de otra manera:

var str = "I have a car"; 
while (str.indexOf(' ') > 0) { 
    str = str.replace(' ' , ''); 
    } 
var strLength = str.length;  
6

Puede calcular el número de coincidencias utilizando la expresión regular \w - que coincide con cualquier carácter alfanumérico o [a-zA-Z] para cualquier carácter alfa

por ejemplo:

var numChars = "I have a car".match(/[a-zA-Z]/g).length; 
// numChars = 9 

ejemplo vivo: http://jsfiddle.net/GBvCp/

+0

Tenga en cuenta que '\ w' también coincide con' _', que puede o no ser deseable. –

0

contar el número de espacios (por ejemplo, http://p2p.wrox.com/javascript-how/70527-count-occurrence-character-string.html), luego reste eso de la longitud.

 

    var testString = ' my test string has a number of spaces '; 
    alert('Number of spaces:' + (testString .replace(/[^ ]/g, '').length)); 
    alert('Number of characters:' + (testString.length)); 
    alert('Number of characters excluding spaces:' + 
     (testString.length - (testString  .replace(/[^ ]/g, '').length))); 

Nota: cuenta correctamente el doble de espacios y espacios en los extremos.

2
var temp = str; 

temp= temp.replace(/[^a-zA-Z]+/g,""); 

temp.length dar u el número de caracteres

Cuestiones relacionadas