2010-08-24 3 views
0

Я пытаюсь проверить, имеет ли имя недопустимые символы, до сих пор мне удалось получить все, что мне нужно, помимо проверки на капитализацию, я пробовал использоватьMySQL и Regex (проверка правильности имени)

SELECT BINARY('jiLl') REGEXP('[[:upper:]]+'); 

но, к сожалению, это также означает правильные отформатированные имена, как в (Джек), возможно ли, чтобы регулярное выражение игнорировало первый символ имени, и если да, то как?

Спасибо заранее, --a

ответ

1

Возьмите один шаг назад и пересмотреть;)

Дайте мне все экземпляры, которые не начинаются с заглавной буквы, а остальные строчные:

mysql> SELECT BINARY('JacK') NOT REGEXP('^[[:upper:]][[:lower:]]+$') AS is_invalid; 
+------------+ 
| is_invalid | 
+------------+ 
|   1 | 
+------------+ 
1 row in set (0.00 sec) 

mysql> SELECT BINARY('jiLl') NOT REGEXP('^[[:upper:]][[:lower:]]+$') AS is_invalid; 
+------------+ 
| is_invalid | 
+------------+ 
|   1 | 
+------------+ 
1 row in set (0.00 sec) 

mysql> SELECT BINARY('Jack') NOT REGEXP('^[[:upper:]][[:lower:]]+$') AS is_invalid; 
+------------+ 
| is_invalid | 
+------------+ 
|   0 | 
+------------+ 
1 row in set (0.00 sec) 
+0

О, это здорово! Я полностью упустил возможность сделать это обратным путем. Отличный материал. спасибо! --a – schizix

+1

извинения, я пока не могу оценить ответ, но мне нужно 15 репутации, чтобы сделать это, но это самое лучшее +1, оцените подсказку, еще раз большое спасибо – schizix

+0

Мое удовольствие, мне пришлось отступай сам;) – nicomen

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