[英]Using preg_replace()?
我正在嘗試理解preg_replace()函數,但它對我來說看起來很神秘。 從這里查看有關函數的文檔。 我知道它由三件事組成 - 主題,匹配模式以及替換它的內容。
我目前正試圖通過替換不是數字的任何東西來“消毒”數字輸入。 到目前為止,我知道我需要允許數字0-9,但刪除任何不是數字的內容並將其替換為:“”。
而不是逃避我需要的每一個角色,是否有一些方法可以簡單地不允許任何其他字符而不是數字0-9? 此外,如果有人能夠闡明“匹配模式”部分如何運作......
如果要清理字符串以替換不是數字的任何內容,您可以編寫一個匹配不在列表中的字符的正則表達式。
模式[0-9]
將匹配所有數字。 放置一個插入符號( ^
在設定的開始)相匹配的一切, 是不是在集: [^0-9]
$result = preg_replace('/[^0-9]/', '', $input);
請注意,這也將過濾掉句點/小數點和其他數學標記。 您可以通過允許周期來包括句點/小數點(允許浮點數):
$result = preg_replace('/[^0-9.]/', '', $input);
請注意,句點( .
)是正則表達式中的通配符。 它不需要在括號表達式中進行轉義,但它可以在模式的其他位置進行轉義。
preg_replace()
比你想象的容易:
$p = "/[A-Z a-z]/";
$r = "";
$s = "12345t7890";
echo preg_replace($p, $r, $s);
輸出“123457890” - 注意沒有'6'
is_numeric();
是不是解決了你的問題?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.