我在創建這個正則表達式來保存它之前過濾某些文本,我的想法是隻保留字母,空格和帶有口音或字母的字母,但最後兩種情況都是作爲重音 - 不工作,我希望你能幫助我。正則表達式字母,空格和重音
if(preg_match("/^[a-zA-Z .\-]+$/i", $field)){
return true;
}else{
return false;
}
我在創建這個正則表達式來保存它之前過濾某些文本,我的想法是隻保留字母,空格和帶有口音或字母的字母,但最後兩種情況都是作爲重音 - 不工作,我希望你能幫助我。正則表達式字母,空格和重音
if(preg_match("/^[a-zA-Z .\-]+$/i", $field)){
return true;
}else{
return false;
}
你想之前清空重音字符像/^[\pL\pM\p{Zs}.-]+$/u
。
解釋新位:
\pL
- 以Unicode字母分類\pM
匹配任何東西 - 結合標記(如結合附加符號)\p{Zs}
- 空格分隔u
- 模式和主題字符串被視爲UTF-8對於正則表達式,包括Unicode類別上Unicode的詳細信息,請參閱http://www.regular-expressions.info/unicode.html
謝謝!這對我來說,事實上我仍然有很多懷疑,即使正則表達式工作,所以你離開了我。謝謝! – NHTorres
您可以將重音的字符添加到您的情況:
if(preg_match("/^[A-Za-z\u00C0-\u017F\.\-]+$/i", $field)){
return true;
}else{
return false;
}
另一種方法是將字轉換成Unicode剛你運行你的正則表達式功能
添加它們(你需要音符的字母),以你的性格類,並使用u修飾符來處理UTF8字符串。 –
當它是'[]'中的最後一個時,不需要轉義破折號。如果使用'/ i',則不需要A-Z。所以你的正則表達式變成:'/^[a-z .-] + $/i' –
@ Al.G .:不需要在字符類中逃避點。 –