我創建一個搜索功能。用戶只能使用a-z A-Z和0-9。我如何檢查$ var是否只包含文本或數字,而不是特殊字符?檢查變量是否包含文本或數字
我已經試過這樣的事情:
if (!preg_match('/[^a-z]/i', $search) {
$error = "error...";
}
如果任何人有一個聰明的解決方案,請讓我知道。它也可能是檢查特殊字符的東西。
我創建一個搜索功能。用戶只能使用a-z A-Z和0-9。我如何檢查$ var是否只包含文本或數字,而不是特殊字符?檢查變量是否包含文本或數字
我已經試過這樣的事情:
if (!preg_match('/[^a-z]/i', $search) {
$error = "error...";
}
如果任何人有一個聰明的解決方案,請讓我知道。它也可能是檢查特殊字符的東西。
你幾乎在那裏。只需0-9號碼加入您的正則表達式,像這樣:
if(preg_match('/[^a-z0-9]/i', $search))
{
$error = "Error...";
}
的/i
標誌告訴忽略大小寫的表達,所以不需要字母列表裏面A-Z
。
在你的原代碼,你要找的任何不是一個字母或數字,同時還要檢查,看看是否preg_match()
有沒有匹配任何東西 - 你創建了一個雙重否定。上面的代碼執行if()
如果有任何不是一個字母或數字是找到。在評論中充分評價@brain。
爲了允許其他字符,簡單地將它們添加到字符的括號內:
if(preg_match('/[^a-z0-9 \.]/i', $search))
{
$error = "Error...";
}
此示例允許空間和.
(點)。
看起來不錯 - 爲什麼不'/ [^ A-ZA-Z0-9] /'有關係嗎? –
你不允許有空格嗎? –
應該允許空格 – 2by