Ver Mensaje Individual
  #6 (permalink)  
Antiguo 09/10/2014, 03:16
Pantaláimon
 
Fecha de Ingreso: julio-2006
Ubicación: Barcelona
Mensajes: 244
Antigüedad: 17 años, 10 meses
Puntos: 32
Respuesta: Duda con expresión regular

La expresión regular que propones no funciona ni con el texto que propones sin comas:
Código javascript:
Ver original
  1. /^[A-Z0-9]{1,30}(,[A-Z0-9]{1,30})*$/.test('1f13er3,12412412ssss,12ssss2') // false
Porque tu expresión regular no acepta minúsculas. Para ello usa añade i al final de la expresión (\w también concuerda con la raya baja _ así que siendo estrictos, en tu caso no serviría).
Código javascript:
Ver original
  1. /^[A-Z0-9]{1,30}(,[A-Z0-9]{1,30})*$/i.test('1f13er3,12412412ssss,12ssss2') // true

Cita:
El problema es que a esos textos alfanuméricos me comentan que les quieren tener la posibilidad de meter una coma. Por lo que había pensado que cada texto alfanumérico estuviera encerrado en comillas.
Por lo que comentas, entiendo que los textos separados entre comas es obligatorio. Pero que los textos vayan encerrados en comillas es una opción propuesta por ti.

Esta sería la solución que pides:
Código javascript:
Ver original
  1. var regex = /^\"[A-Z0-9,]{1,30}\"(,\"[A-Z0-9,]{1,30}\")*$/i;
  2. regex.test('"1f13er3","12412412ssss","12ssss2"') // true
  3. regex.test('"1f1,3er3","12,4124,12ssss","12ss,ss2"') //

Sin embargo podrían haber otras maneras de añadir comas. Por ejemplo escapándolas con la contrabarra \.

Código javascript:
Ver original
  1. /^([A-Z0-9]|\\,){1,30}(,([A-Z0-9]|\\,){1,30})*$/i.test('1f1\\,3er3,12\\,4124,12ssss,12ss\\,ss2')

Un saludo!
__________________
github.com/xgbuils | npm/xgbuils