首頁  >  文章  >  後端開發  >  Python 2.7中isalpha 不支援 unicode

Python 2.7中isalpha 不支援 unicode

Y2J
Y2J原創
2017-05-18 15:07:331695瀏覽

今天在寫一個搜尋元件時,我想根據搜尋的是否是全部字母來選擇搜尋的欄位。
所以有下面的程式碼:

if q.isalpha():
   query = query.filter(User.username.ilike(like_str))else:
   query = query.filter (User.realname.ilike(like_str))

但是發現就算裡面有中文也被判斷成 isalpha 為 true 了。
測試發現是 str 中方法 isalpha 對於 Unicode 的判斷有不可靠。
而 Flask 中預設對參數解碼都是 UTF-8 的。所以需要使用 encode('utf-8') 重新編碼之後 函數 isalpha() 才可用。
測試如下:

In [15]: u"张 x".isalpha()
Out[15]: TrueIn [16]: "张 x".isalpha()Out[16]: False
In [17]: "aac".isalpha()
Out[17]: True
In [18]: u"张 x".encode('utf-8').isalpha()
Out[18]: False

【相關推薦】

1. Python免費影片教學

2. python中檢查字符串是否由字母組成的方法:string.isalpha()

#

以上是Python 2.7中isalpha 不支援 unicode的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn