簡體   English   中英

PHP刪除除字母和連字符( - )之外的所有內容

[英]PHP remove everything except letters and a hyphen (-)

我正在制作一個表格,詢問用戶的名字和姓氏,我不希望他們進入

$heil4

我希望他們進入

Sheila

我知道如何過濾掉除字母以外的所有內容,但我知道有些名字可以有

Sheila-McDonald

那么除了字母和連字符之外,我如何從字符串中刪除所有內容?

簡單地使用

$s = preg_replace("/[^a-z-]/i", "", $s);

或者如果你想將一些非ascii字符轉換為ascii,例如Jean-RémyJean-Remy ,那么請使用

$s = preg_replace("/[^a-z-]/i", "", iconv('UTF-8', 'ASCII//TRANSLIT//IGNORE', $s)); 

$new = preg_replace('#[^AZ-]#iu', '', $data);

但不是刪除字母(從而修改用戶的輸入),而是更好地驗證它並在輸入無效時顯示錯誤。 通過這種方式,用戶將知道他輸入的內容正是您擁有的價值

if(!preg_match('#[AZ-]#iu', $data)) echo 'invalid';

而不是替換任何東西,有一些樂趣。 這樣一個名字主要包含你可以解碼的數字; 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));

使用此選項可以刪除所有非字母數字字符,不包括非拉丁字符和規定的 標點符號

$strtochange= preg_replace("/[^\\s\\p{Pd}a-zA-ZÀ-ÿ]/",'',$strtochange);

注意:這會將$heil4變為heil

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM