2017-06-01 187 views
0

我想檢查只包含英文字母,數字和符號的字符串。我在代碼下面嘗試,但只有當所有字符都是不同的語言時才起作用。檢查字符串是否僅包含英文字母,數字和符號

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

例如

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

PS:我的問題是不重複的,因爲其他的問題只涉及字母和符號,礦山佔地面積符號太

+1

https://stackoverflow.com/questions/9351306/how-to-check-if-a-php-string-contains-only-english-letters-and-digits這應該是你的情況 – 2017-06-01 08:03:13

+0

可能的重複[如何檢查,如果一個PHP字符串包含onl y英文字母和數字?](https://stackoverflow.com/questions/9351306/how-to-check-if-a-php-string-contains-only-english-letters-and-digits) –

+0

@IvanFranchi和kris:它不包括符號 – Vishnu

回答

1

將確定一個字符串就是可打印的ASCII工作?如果是這樣你可以使用這個表達式:

[ -~] 

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

如果您需要非ASCII字符和比你可以使用維基百科頁面來獲得您所需要的特定的Unicode格式:

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

+0

$ ok = preg_match('/ [ - 〜] /',「ព្រាបសុវok ok」); echo $ ok;它也返回1 – Vishnu

+0

@Vishnu在這種情況下,您需要錨定正則表達式。嘗試'preg_match('/^[ - 〜] * $ /',$ text);'。 – Phylogenesis

相關問題