2017-06-01 3 views
0

Ich möchte nach Zeichenfolgen suchen, die nur englische Buchstaben, Ziffern und Symbole enthalten. Ich habe versucht, Code unten, aber es funktioniert nur, wenn alle Zeichen unterschiedliche Sprache sind.Überprüfen, ob die Zeichenfolge nur englische Alphabete, Ziffern und Symbole enthält

if(strlen($string) != mb_strlen($string, 'utf-8')) 
    { 
echo "No English words "; 
    } 
    else { 
echo "only english words"; 
    } 

Zum Beispiel

1. hellow hi 123#[email protected]#[email protected]#()#@# -- true 
2. ព្រាប សុវ ok yes #@# - false 
3. this is good 123 - true 
4. ព្រាប -- false 

ps: meine Frage duplizieren nicht, weil andere Fragen nur Buchstaben und Symbole decken, deckt mein Symbol zu

+1

https://stackoverflow.com/questions/9351306/how-to-check-if-a-php-string-contains-only-english-letters-and-digits dies sollte Ihr Fall sein –

+0

Mögliche Kopie von [ Wie überprüft man, ob eine PHP-Zeichenfolge nur enthält? y Englisch Buchstaben und Ziffern?] (https://stackoverflow.com/questions/9351306/how-to-check-if-a-php-string-contains-only-english-letters-and-digits) –

+0

@IvanFranchi und kris: Es deckt keine Symbole ab – Vishnu

Antwort

1

Bestimmung würde, wenn ein String nur druckbaren ASCII ist Arbeit ? Wenn ja, können Sie diese Regex verwenden:

[ -~] 

http://www.catonmat.net/blog/my-favorite-regex/

Wenn Sie nicht ASCII-Zeichen müssen auch als Sie die Wikipedia-Seite können die spezifischen Unicode-Formate erhalten, die Sie brauchen:

https://en.wikipedia.org/wiki/List_of_Unicode_characters#Control_codes

+0

$ ok = preg_match ('/ [- ~] /', "ព្រាប សុ វ ok ja"); echo $ ok; es gibt 1 auch dafür zurück – Vishnu

+0

@ Vishnu In diesem Fall müssen Sie den regulären Ausdruck verankern. Versuchen Sie 'preg_match ('/^[- ~] * $ /', $ text);'. – Phylogenesis

Verwandte Themen