Pregunta

Estoy tratando de hacer mi título del artículo en el formato adecuado, actualmente estoy usando TextInfo.ToTitleCase de formateo. Lo hace bien en la mayoría de los puestos de trabajo, pero que no es tan perfecto.

Por ejemplo:

  • cadena original: guerra y la paz
  • Resultado esperado: Guerra y Paz
  • Resultado real: Guerra y Paz

Microsoft también utilizan anterior como el ejemplo , obviamente es un problema conocido. Lo que voy a hacer es escribir una lista a mano para aquellas palabras como "a", "y", "o" etc (no estoy seguro de que puedo obtener una lista completa o no), sería el mejor solución para este problema?

¿Fue útil?

Solución

Esta es una implementación de JavaScript de una fuente confío y he utilizado mi mismo: http : //ejohn.org/blog/title-capitalization-in-javascript/

En los href="http://ejohn.org/files/titleCaps.js" código fuente , que tiene una lista de minúsculas-únicas excepciones que ( creo correctamente) supone que se necesita.

El trabajo estaría en convertirlo en algo ASP.NET podría utilizar serverside, por supuesto, pero la lógica ya tiene una gran cantidad de pensamiento puesto en él que debe ayudar con lo que termina la rodadura.

Buena suerte!

Otros consejos

No he visto una solución a este problema en una biblioteca proporcionada ... Se ve un gran candidato para un método de extensión . Curiosamente, es un poco más complejo que una simple lista de palabras y tiene algunas variaciones.

El Manual de Chicago del estilo sugiere lo siguiente:

  1. capitalizar siempre el primero y el última palabra.

  2. mayúscula todos los sustantivos, pronombres, adjetivos, verbos, adverbios, y conjunciones subordinadas ( "AS", "Porque", "aunque").

  3. Minúsculas todos los artículos, coordinar conjunciones ( "y", "o", "ni"), y con independencia de las preposiciones longitud, cuando son distintos de la primera o la última palabra.

  4. Lowercase la "a" en un infinitivo.

El último caso parece particularmente difícil ya que tienes que analizar para determinar si "a" se utiliza en un infinitivo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top