2011-10-04 14 views
5

Estoy usando JavaScript y PHP para calcular longitudes de cadena. Todo está bien, excepto cuando calculo una longitud de cadena de texto que viene de Chrome o Firefox versus Internet Explorer. Las filas/saltos de línea de textarea nuevos se calculan como 2 caracteres en Internet Explorer y PHP. Pero Chrome y Firefox calculan filas de texto/saltos de línea igual que 1 char (en comparación con PHP e Internet Explorer calcula como 2). Este es mi problema. ¿Alguien sabe cómo resolverlo?Longitud de cadena Javascript difiere de PHP mb_strlen (en fila textarea, saltos de línea)

Por lo tanto, JavaScript cuenta en un área de texto en IE = la longitud de cadena calculada con PHP /// Y el número de caracteres JavaScript en un área de texto en Chrome/Firefox no es igual a la longitud de cadena calculada con PHP.

código utilizado:

Javascript : document.getElementById("text").value.length 

PHP : mb_strlen($_POST['text'], 'UTF-8') 

Hay otros mensajes acerca de esto, sobre todo el siguiente: Javascript String Length Differs From PHP mb_strlen. Pero la respuesta a mi pregunta no está allí y no pude encontrarla en ninguna otra publicación.

Gracias por su ayuda y sugerencias.

Respuesta

9

Firefox y Chrome única \n para saltos de línea utilizan mientras que IE (opera también) utiliza \r\n

Para obtener resultados únicos reemplazar todas las apariciones de \r\n por \n antes de contar la cadena de longitud

Cuestiones relacionadas