首頁 > 後端開發 > php教程 > 為什麼我的 PCRE 模式與 PHP 中的 Unicode 字母不符?

為什麼我的 PCRE 模式與 PHP 中的 Unicode 字母不符?

Patricia Arquette
發布: 2024-12-29 16:21:11
原創
135 人瀏覽過

Why Doesn't My PCRE Pattern Match Unicode Letters in PHP?

在PCRE/PHP 中解碼Unicode 字母匹配難題

開發人員在PHP 中使用PCRE 驗證名稱時遇到困難,特別是非驗證名稱時遇到困難,特別是非驗證名稱ASCII Ă 或張等字元。他們的初始模式“/^([p{L}'- ]) $/”未能捕獲這些字符,導致人們懷疑模式或輸入處理可能是罪魁禍首。

To弄清楚問題,讓我們檢查一下模式。 p{L} 是任何 Unicode 字母的 Unicode 字元屬性簡寫。但是,它需要 UTF-8 模式才能正常運作。預設情況下,PHP 在區分大小寫的非 Unicode 模式下運作。

事實證明,開發人員忽略了在其模式中指定「u」修飾符。此修飾符啟用 Unicode 支持,允許 p{L} 等字元屬性按預期工作。

要解決此問題,請更新模式:

$namePattern = '/^[-\' \p{L}]+$/u';
登入後複製

透過添加「u」修飾符,該模式現在可以準確地匹配Unicode 字母字符,包括非ASCII 字母表中的字符,確保成功驗證包含Ă 和張等字元的名稱。

以上是為什麼我的 PCRE 模式與 PHP 中的 Unicode 字母不符?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板