2010-06-08 8 views
12

Mientras escribo JavaScript Siempre me faltan algunas características del lenguaje bastante básicas que JavaScript simplemente no tienen. Entonces, ¿hay alguna biblioteca que traiga funciones tales como trim, sprintf, str.endwith y etc. a JavaScript?bibliotecas de ayuda de JavaScript? Sin DOM o AJAX cosas

que acabo de escribir esas funciones demasiadas veces y yo también estoy cansado de copiar/pegar desde mi viejo código. Sería bueno tener una biblioteca que los haya implementado y probado en un solo lugar.

Nota que no estoy hablando de Ajax/DOM-libraries como jQuery o Dojo y tal. Sé que esas bibliotecas traen algunas de las características de las que estoy hablando aquí, pero no todas. Y me gustaría tener también una biblioteca independiente del entorno para que se pueda usar la misma biblioteca con JavaScript del lado del servidor.

mejor biblioteca hasta ahora que he encontrado es php.js, pero no me gusta la forma en que está contaminando el espacio de nombres global. Tampoco soy muy aficionado a cómo se nombran las funciones de PHP.

EDITAR

estoy con la solución de Underscore.js como averiguó que es muy fácil de extender. Así que lo extendí con mi propio conjunto de funciones de cadena. Échale un vistazo aquí:

https://github.com/epeli/underscore.string

+3

+1 por no tener gusto PHP.js. – SLaks

Respuesta

11

Tenga una mirada en Underscore.


Por otro lado, lo que quiere parece bastante simple:

function endsWith(str, end) { 
    return String(str).lastIndexOf(end) === str.length - end.length; 
} 

function trim(str) { 
    return String(str).replace(/^\s\s*|\s\s*$/g, ''); 
} // btw, should really be checking for String.prototype.trim 

// ... and google "JavaScript sprintf" for a sprintf implementation 
+0

+1 por esto, nunca había oído hablar de eso hasta ahora, pero se ve bastante genial. –

+0

Underscore sería la biblioteca que estoy buscando si incluye algunos ayudantes de manipulación de cadenas. O tal vez podría usarlo con alguna biblioteca específica de cadenas ... – Epeli

+0

Las versiones más nuevas de Opera, Firefox y Chrome tienen un método de recorte de prototipo de cadena. – kennebec

3

No estoy al tanto de ninguna biblioteca que proporcionan este tipo de funciones distintas de las bibliotecas populares/DOM AJAX. ¿Por qué no hand pick the functions que necesita desde PHP.js y agregarlos a su propio espacio de nombres? Incluso podrías cambiarles el nombre a lo que quieras.

0

Javascript subcadena le ayudará ... si no te gusta de esa manera, voy a recomendar expresiones regulares ...

mayoría de las veces, cuando necesito que funciona básico en una página muy simple, i hacer mi mejor amigo ... regex

6

Es posible que desee revisar la Google Closure Library. Proporciona los siguientes paquetes:

array (1) 
asserts (1) 
async (3) 
base.js 
color (3) 
crypt (5) 
cssom (2) 
datasource (8) 
date (4) 
debug (16) 
demos (6) 
deps.js 
disposable (1) 
dom (28) 
editor (15) 
events (18) 
format (3) 
functions (1) 
fx (12) 
gears (14) 
graphics (25) 
history (1) 
i18n (15) 
iter (1) 
json (1) 
locale (16) 
math (15) 
memoize (1) 
module (10) 
net (29) 
object (1) 
positioning (9) 
proto (2) 
proto2 (10) 
pubsub (1) 
reflect (1) 
spell (1) 
string (3) 
structs (18) 
style (2) 
testing (37) 
timer (1) 
ui (133) 
uri (2) 
useragent (9) 

La Biblioteca cierre es de código abierto, y Google should be using it en Gmail, Maps, Docs, Sites, libros, lector, Blogger, Calendar y Picasa.

Es posible que desee consultar los paquetes Array y String para obtener una primera impresión rápida.

4

Es posible que desee echa un vistazo a MooTools. Es una biblioteca muy modular con un enfoque en mejorar el código JavaScript, no solo el entorno JavaScript específico del navegador (DOM, AJAX, etc.).

+0

De hecho, en la pantalla de descarga puede seleccionar solo los módulos String y Array, para ejemplo. – seanmonstar

0

Estoy de acuerdo con Garis.Aquí hay una página que muestra las funciones de JS String Object.

http://www.w3schools.com/jsref/jsref_obj_string.asp

Uso de la información y como usted puede escribir sus propias funciones utilizando los de arriba arriba: por ejemplo. Si desea recortar una cadena que haría algo como esto para permitir una cierta cantidad de caracteres (éste añade elipsis, puede quitar que, por supuesto):

String.prototype.trim= function(num){ 
    var str = this; 
    if (!num) { 
     num = 20; 
    } 
    if (str.length > num) { 
     str = str.slice(0, num); 
     str += '...'; 
    } else { 
     str = this + ''; 
    } 
    return str; 

} 
alert('this string needs to be shorter'.trim(10)); 

salida sería: este strin ...

+0

Lo siento, el anterior es mi método truncado. Realmente no hay necesidad de recortar en js, (corrígeme si estoy equivocado) pero js no permite espacios en blanco al principio o al final de la cadena. – UpHelix

+0

Sin embargo, \ b coincide con un carácter al principio o al final de una cadena y \ s coincide con el espacio en blanco. – UpHelix

1

Puede consultar Mootools Server.

Es un MooTools personalizados construyen sin ningún componente con relación a navegadores. Incluye Class, Core y Native Extensions. Es específicamente hecho para entornos del lado del servidor como como v8cgi, Rhino o SpiderMonkey.

No sé si se adapta a su propósito, pero es una forma de hacerlo.

Cuestiones relacionadas