簡體   English   中英

我怎樣才能使用php接受字母,數字,逗號(,)和點(。)

[英]How can I Accept only letter, number, comma (,) and dot (.) using php

我想使用以下正則表達式只接受字母,數字,逗號和點。 如果我使用$string它會說無效數據但是如果我使用$string2它就是說有效數據。

1)為什么$string不接受有效數據? 我錯過了什么?

2)如果我接受逗號,我怎么能逃脫它? 使用mysqli_real_escape_string? 如果是這樣的話,當我從Db顯示它時它會顯示反斜杠。 請幫忙。 謝謝。

$string = "I m a good boy";
$string2 = "Imagoodboy";

if(preg_match("/^[a-zA-Z0-9]+$/", $string) == 0)
    echo "Invalid data";
else
    echo "Valid data";

你需要包括. 在你的角色類中並反轉你的if條件檢查:

if(preg_match('/^[a-zA-Z0-9.]+$/', $string))
    echo "valid data";
else
    echo "InValid data";

$string也有空格,空間不在你允許的字符列表中,這就是它失敗的原因。 如果你想包含空格也使正則表達式為:

/^[a-zA-Z0-9. ]+$/

First String包含空格。 根據你的正則表達式,空間無效。要驗證$ string,你必須在正則表達式中創建有效的空格。

嘗試這個 :

preg_match("/[^a-zA-Z0-9., ]/",$string);
                          ^
                        Space

我認為問題來自$ string中的空格。

在捕獲組中添加空間

if(preg_match("/^[a-zA-Z0-9. ]+$/", $string) == 0)
    echo "Invalid data";
else
    echo "Valid data";

它應該工作正常

DEMO

你錯過了一個空間. , 試試吧:

if(preg_match("/^[\d\w\s\.]+$/", $string) == 0)
    echo "Invalid data";
else
    echo "Valid data";

暫無
暫無

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

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