Я делаю форму на своем веб-сайте, но у меня проблема с 2 регулярными выражениями. (У меня есть регулярное выражение PHP и регулярное выражение JS, потому что я читаю, что только javascript опасен)
Сначала в PHP
$name = mysql_real_escape_string($_POST['name']); if(strlen($name) < 2 || strlen($name) > 20 || preg_match('#[0-9]#',$name)) { echo '<p class="center"> je naam: <b> '.$name.' </b> bevat cijfers en/of mag niet korter zijn dan 2 tekens en niet langer zijn dan 20 tekens. </p>'; echo '<p class="center"> <a href="javascript:history.go(-1);">Ga terug</a></p> '; }
этот preg_match дает ошибку, если в имени есть числа. Вопрос в том, что я не хочу, чтобы люди имели & ^ * # @ и что там имена.
Для чего правильное регулярное выражение.
Следующий Javascript
function checkform ( form ) { if (form.name.value == "") { alert( "Please enter your name." ); form.name.focus(); return false ; } if (form.email.value == "") { alert( "Please enter your email address." ); form.email.focus(); return false ; } return true ; }
Здесь я хочу то же самое и проверю, что проверяет пустоту и длину, а не # $ ^ &!
Для проверки подлинности электронной почты мне нужно другое регулярное выражение, но я ищу его позже.
Приветствие Йохем
Пожалуйста, отредактируйте, если вы видите ошибки.
РЕДАКТИРОВАТЬ:
var re и var regex являются регулярными выражениями электронной почты, которые я нашел. Но почему они не работают, кто-то дает мне хороший ответ с объяснением, потому что я не так хорош. 🙂
function checkform ( form ) { var rex = /[^az]/i; var regex = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/; var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; if (regex.test(form.email.value)) { alert( "Please enter your email address." ); form.email.focus(); return false ; } if (rex.test(form.name.value)) { alert( "Please enter your name. no numbers or #$^& things allowed)." ); form.name.focus(); return false ; } return true ; }
Если вы хотите только принимать буквы, используйте /[^az]/i
. Вы можете использовать это регулярное выражение в PHP и JavaScript.