다음 정규식을 사용하여 사용자 이름 (등록 양식의 입력 유형 텍스트)의 유효성을 검사하여 사용자 이름에 영숫자, 점, 대시 또는 밑줄 만 포함되도록합니다. 내가 인스턴스 % 또는 번호 텍스트 필드에 또는 @ 입력하면PHP 정규식 앰퍼샌드 문제
if (!preg_match('/^[a-zA-Z0-9\.\_-]+$/',$my_name)) { echo 'no_valid'; }
내가 제대로 다시는 유효한 사용자 이름, 또한 유효한 문자 아니다 오류 메시지가 (.-_) 허용됩니다, 그것은 보인다 있도록 내가 & 또는 +를 입력 할 때까지 잘 작동하려면 preg_match를 사용하여 이전에 이미 제외했던 잘못된 문자를 입력 할 수 있습니다.
아무도 왜 이런 일이 발생하고 어떻게이 문제를 극복 할 수 있습니까?
나는 코드를 시험해 보았고 제대로 작동합니다. –
$ my_name은 어떻게 설정됩니까? 즉,'index.php? name = bob & x'는'bob'으로 이름을 부여합니다. 5 문자 이상의 문자열에 최소 길이 즉'/^[a-zA-Z0-9 \ ._ \ -] {5,} $ /'를 추가 할 수 있습니다. – Waygood
미안합니다. PHP는 입력 형식의 사용자 이름 필드의 keyup 이벤트에 대한 아약스 게시물에 의해 regex. 이것이 당신을위한 부가 가치있는 정보인지 나는 모른다. – AlexCode