2014-09-02 10 views
0

내가 변수는 문자 NOT 문자가없는 숫자가 포함되어 있는지 여부를 확인하는 PHP 코드를 작성하려면, 내가이 입력 한하지만 작동하지 않습니다 :문자열에 PHP에서만 문자가 포함되어 있는지 확인하는 방법은 무엇입니까?

$myVar = "Var#iable5"; 

ereg(^[a-zA-Z] , $myVar) 
+6

사이드로 : ['ereg()'] (http://php.net/manual/en/function.ereg.php)은 더 이상 사용되지 않습니다. * "이 함수는 PHP 5.3.0에서 사용이 권장되지 않았으므로이 기능을 사용하지 않는 것이 좋습니다."* –

+1

"문자"대신 "문자"를 정의 할 수 있습니까? é 편지입니까? Σ입니까? –

+1

@mattgibson - 또는 낡은 ß은 어떨까요? – Anthony

답변

1

시작을 EREG를 사용하지 않음으로써(). 문자 그대로 몇 년 동안 deprecated되었고, PHP에서 언젠가 제거됩니다. 또한 패턴이 잘못되었습니다. ^ "start of line"을 나타내는 패턴 앵커입니다.

당신이 원하는 : 대신

preg_match('/[^a-zA-Z]/', $myVar) 

. [] 그룹의 첫 번째 문자 인 ^은 "Not"을 의미하므로 "시작점에서 [a-zA-Z]"가 아니라 "NOT a-zA-Z"를 의미합니다.

+0

입력 한 함수가 TRUE를 반환합니다. 그렇게해서는 안됩니다. – Montoolivo

6

정규식에 대한 필요가 없습니다 :

$result = ctype_alpha($myVar); 
+0

+1 마침내! 낮은 수준으로 유지 – Anthony

2

PHP는 그렇게 기능이 내장되어 있습니다 : 워드 프로세서 ctype_alpha

$myVar = "Var#iable5"; 
var_dump (ctype_alpha($myVar)); // false 

:

확인 모든 문자 경우 제공된 문자열 인 text는 알파벳입니다. $ text가 단일 문자이지만 다른 언어가 문자를 갖는 경우 표준 C 로켈에서 문자는 [A-Za-z]이고 ctype_alpha()는 (ctype_upper ($ text) || ctype_lower ($ text) 대문자 또는 소문자로 간주되지 않습니다.

관련 문제