PCRE/PHP 中的Unicode 字元符合
嘗試在PHP 中使用PCRE 驗證名稱時,您可能會遇到非ASCII 字元的問題例如Ă 或張。這是因為使用的模式沒有明確考慮 Unicode 相容性。
模式問題
您的原始模式 $namePattern 打算匹配 Unicode 字母,但僅依賴p{L} 屬性。雖然此屬性通常適用於 ASCII 字符,但它可能無法正確處理擴展的 Unicode 字符。
解決方案:Unicode 修飾符
為了確保 Unicode 字元的正確匹配,它是將 u 修飾符與 PCRE 結合使用至關重要。此修飾符將 PHP 切換到 Unicode 模式,從而可以使用 Unicode 字元屬性和模式。
加入此修飾符後,修改後的模式將變為:
$namePattern = '/^[-\' \p{L}]+$/u';
此模式現在將正確匹配兩者ASCII 和擴展Unicode 字母,以及撇號、連字符和空格。
以上是如何確保我的 PCRE/PHP 模式正確匹配 Unicode 字元?的詳細內容。更多資訊請關注PHP中文網其他相關文章!