2016-10-27 4 views
1

Я выполнил свое регулярное выражение в JavaScript, и мое регулярное выражение позволяет использовать альфа-символы, цифры, пробел и пустую строку. Я хотел бы иметь такое же регулярное выражение в ColdFusion. У меня все работает нормально, но пустая строка. Вот мой JavaScript:Как разрешить пустую строку в регулярном выражении ColdFusion?

/^([A-Z0-9 ]{1,50})?$/i 

и вот что я имею в ColdFusion:

<cfset match = REMatch("^[A-Za-z0-9 ]{1,50}$",myText)> 

это будет соответствовать все, что я хочу, но пустая строка. Я не могу использовать ? в ColdFusion, потому что это будет выглядеть для соответствия любому символу в строке. Если кто-то знает, как соответствовать пустой строке, пожалуйста, дайте мне знать. Благодарю.

+2

Попробуйте установить минимальное значение в '0' - ' ' –

+0

@ WiktorStribiżew Это работает хорошо. Является ли это надежным или есть случай, когда это может произойти сбой? Спасибо за вашу помощь! –

+0

Не должно быть никаких проблем. –

ответ

2

Установите значение мин до 0

<cfset match = REMatch("^[A-Za-z0-9 ]{0,50}$",myText)> 
            ^

limiting quantifier позволяет устанавливать оба порога, минимальное и максимальное. Когда вы установите значение min равным 0, оно не позволит совместить ничего, пустую строку. Подробнее

Pattern:

  • ^ - начало строки
  • [A-Za-z0-9 ]{0,50} - от 0 до 50 ASCII буквы, цифры и пробелы
  • $ - конец строки.
+0

Что будет в случае, когда мне потребуется 3 цифры или пустое место. Я не могу использовать {0,3}, мне нужно что-то, что будет принимать 3 цифры или пустую строку. –

+1

Использование чередования: ''^([A-Za-z0-9] {3,50} |) $ ' –

Смежные вопросы