簡體   English   中英

PHP:正則表達式從字符串替換除字母數字字符以外的所有內容

[英]PHP: regular expression to replace from a string everything except for alpha numeric characters

我需要清理一個字符串,並確保它只包含字母數字字符。 我想出了以下代碼,由於某種原因失敗了

    $string = 'aaa`bbb!!';
    $string = preg_replace("#[^a-zA-z0-9]*#", "", $string);
    echo $string;die;   

我收到的輸出是aaa`bbb而我期待aaabbb。 你能幫幫我嗎?

應該是資本Z:

preg_replace("#[^a-zA-Z0-9]*#", "", $string);

當你寫Az它表示A (ASCII值65)和z (ASCII值122)之間A所有字符。 這包括反引號(ASCII值96)加上你不想要的其他幾個(下划線,方括號,反斜杠和波浪號)。

您也可以使用+而不是*來重復保存,用空字符串替換空字符串。

我認為*是不必要的,你可以用\\W簡化。 試試以下內容:

$string = preg_replace("/[\W_]/", "", $string);

此外,如果您只想驗證 - 請查看ctype_alnum 它避免了RegEx庫的開銷。

暫無
暫無

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

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