tag getelement javascript formatting text-editor

javascript - getelementsbytagname



¿Cómo implementaría auto-capitalización en JavaScript/HTML? (4)

¿Has intentado aplicar el estilo CSS de transformación de texto a tus controles?

Necesito implementar la capitalización automática dentro de un control Telerik RadEditor en una página ASPX a medida que el usuario escribe.

Esto puede ser una solución específica de IE (IE6 +).

Actualmente capturo cada golpe de teclado (hacia abajo / arriba) a medida que el usuario mecanografía para soportar una característica separada llamada "macros" que son esencialmente palabras clave cortas que se expanden en texto formateado. es decir, la macro "así" podría expandirse automáticamente al golpear la barra espaciadora a "stackoverflow".

Dicho esto, tengo acceso a la información de KeyCode, y estoy usando los métodos TextRange para seleccionar una palabra ("so") y expandirla a "stackoverflow". Por lo tanto, tengo algo de semblante de contexto.

Sin embargo, necesito verificar este contexto para saber si debo capitalizar automáticamente. Esto también debe funcionar independientemente de si se trata de una macro.

Dado que estoy monitoreando las teclas para las macros, ¿debería monitorear la puntuación (es más que solo los períodos que señalan una letra mayúscula) y limitar automáticamente la siguiente letra escrita, o debo usar TextRange y analizar el contexto?


No estoy seguro de si esto es lo que intenta hacer, pero aquí hay una función ( referencia ) para convertir una cadena dada en el caso del título:

function toTitleCase(str) { return str.replace(/([/w&`''‘’"“.@:///{/(/[<>_]+-? *)/g, function(match, p1, index, title){ // '' fix syntax highlighting if (index > 0 && title.charAt(index - 2) != ":" && match.search(/^(a(nd?|s|t)?|b(ut|y)|en|for|i[fn]|o[fnr]|t(he|o)|vs?/.?|via)[ -]/i) > -1) return match.toLowerCase(); if (title.substring(index - 1, index + 1).search(/[''"_{([]/) > -1) return match.charAt(0) + match.charAt(1).toUpperCase() + match.substr(2); if (match.substr(1).search(/[A-Z]+|&|[/w]+[._][/w]+/) > -1 || title.substring(index - 1, index + 1).search(/[/])}]/) > -1) return match; return match.charAt(0).toUpperCase() + match.substr(1); }); }


Usted plantea una pregunta interesante. Actuar con cada pulsación de tecla puede ser más limitante porque no sabrá lo que viene inmediatamente después de un código clave dado (la complejidad de deshacer una reacción que resulta incorrecta podría significar tener que ir a una rutina basada en TextRange de todos modos). Por supuesto, no he luchado con el código sobre este problema hasta la fecha, así que esta es una hipótesis en mi cabeza.

En cualquier caso, aquí hay una función de Title Covering (implementación de java inspirada en la automatización de blogs de John Gruber) que puede estimular ideas a la hora de manejar el código de la carcasa actual:

http://individed.com/code/to-title-case/


A veces, no hacerlo es la respuesta correcta a un problema de codificación.

Realmente NO lo haría, a menos que sienta que puede escribir un guión para establecer correctamente el caso en la siguiente oración, si primero lo convirtiera a minúsculas y lo pasara al guión.

Jean-Luc "El Rey" O''Brien MacHenry van d''Graaf IIV (PhD, OBE), dejó su Macintosh en Macdonald''s con sus amigos MacIntosh y MacDonald. Jesús dio su Atari ST en el concierto de AT & T "SIDA para el SIDA" en San Jorge, con Van Halen en la furgoneta de van Henry, interpretando The Tempest.

Te has preparado para una caída al intentar crear un analizador de lenguaje natural. Nunca puedes hacer esto tan bien como lo hará el usuario. En el mejor de los casos, puede hacer una aproximación y darle al usuario la capacidad de editar y forzar una corrección cuando se equivoca. Pero a menudo en tales casos, la edición es más trabajo que simplemente hacerlo manualmente y desde el principio.

Dicho esto, si tiene el espacio y el poder para almacenar y buscar un gran corpus n-gramo de palabras con las mayúsculas adecuadas, al menos podría tener una puñalada salvaje en el caso más probable.