我正在詢問用戶的姓和名的表單,我不想讓他們進入PHP刪除一切,除了字母和連字符( - )
$heil4
我想他們喜歡進入
Sheila
我知道如何過濾掉一切,除了信件,但我知道,有些名稱可以有
Sheila-McDonald
那麼,除了字母和連字符以外,我怎樣才能從字符串中刪除所有內容?
我正在詢問用戶的姓和名的表單,我不想讓他們進入PHP刪除一切,除了字母和連字符( - )
$heil4
我想他們喜歡進入
Sheila
我知道如何過濾掉一切,除了信件,但我知道,有些名稱可以有
Sheila-McDonald
那麼,除了字母和連字符以外,我怎樣才能從字符串中刪除所有內容?
只需使用
$s = preg_replace("/[^a-z-]/i", "", $s);
,或者如果你想添加一些非ASCII字符轉換爲ASCII,這樣的作爲Jean-Rémy
到Jean-Remy
,然後用
$s = preg_replace("/[^a-z-]/i", "", iconv('UTF-8', 'ASCII//TRANSLIT//IGNORE', $s));
優秀的片段! +1,將使用:) – Eamonn
將非ascii字符轉換爲ascii不能與上面的代碼一起使用 – OnePunchMan
@OnePunchMan - 在http://ideone.com/7LdIJi查看並測試代碼 –
而是什麼也沒有更換的,有一番情趣。這種辦法,主要號碼,你可以解碼的由名稱,P
$name = '$h3il4-McD0nald';
$find = array(0,1,3,4,5,6,7,'$');
$replace = array('o','l','e','a','s','g','t','s');
$name = str_replace($find,$replace,$name);
//Sheila-McDonald
echo ucfirst(preg_replace('/[^a-z-]/i', '', $name));
'/ s'修飾符是什麼。 。? –
好吧,現在當你編輯你的答案並進行更正時,你的代碼與我的代碼非常相似:) –
ok'/ s'表示單行,這是一個錯字,'/ i'表示不區分大小寫,意思是有沒有使用的AZ字符集,亨氏我離開了它....感謝downvote :) –
使用該剝離所有非字母數字字符,不包括非拉丁字符,並prescribedpunctuation。
$strtochange= preg_replace("/[^\s\p{Pd}a-zA-ZÀ-ÿ]/",'',$strtochange);
注:這會變成$heil4
爲heil
。
從什麼時候你知道有人用他們的名字編號? – Frank
採取的要點(關於下劃線也可能),但非拉丁字母呢? – raina77ow
告訴我們你現在擁有什麼,所以我們可以改進,而不是做一些全新的東西 –