簡體   English   中英

PHP正則表達式,允許字母數字以及連字符和句點

[英]PHP regular expression to allow alphanumerics plus hyphens and periods

我真的不理解正則表達式,並且想知道以下正則表達式的作用。 我希望接受我的地址和姓名. -和字母數字。

這項工作還是需要改進? 另外,如果有人可以分解正則表達式'/^[A-Z0-9 \\'.-]{1,255}$/i'那么我可以更好地理解每個部分。

這是PHP代碼。

if (preg_match ('/^[A-Z0-9 \'.-]{1,255}$/i', $_POST['address'])) {
    $address = mysqli_real_escape_string($mysqli, htmlentities($_POST['address']));
} else {
    echo '<p class="error">Please enter your address!</p>';
}

if (preg_match ('/^[A-Z0-9 \'.-]{1,255}$/i', $_POST['name'])) {
    $name = mysqli_real_escape_string($mysqli, htmlentities($_POST['name']));
} else {
    echo '<p class="error">Please enter your name!</p>';
}

/ :正則表達式分隔符

^ :將匹配項錨定在字符串的開頭

[A-Z0-9 \\'.-] :匹配字母(AZ,不帶重音符號),數字,空格,撇號,點或破折號

{1,255} :1至255次。

$ :將匹配項錨定在字符串的末尾。 ^一起,這可以確保整個字符串必須匹配,而不僅僅是子字符串。

/ :正則表達式分隔符

i :使正則表達式不區分大小寫

您的模式基本上允許以下任意組合(介於1到255個字符之間):AZ,0-9,空格,\\,',.。

自己決定這是否足夠好。

至於你的模式:

/^[A-Z0-9 \'.-]{1,255}$/i 

最后的i表示它不區分大小寫

/^[A-Z0-9 \'.-]{1,255}$/ 

斜線表示模式的開始和結束

^[A-Z0-9 \'.-]{1,255}$

^是您要查找的字符串的開頭,$是結尾的字符串

[A-Z0-9 \'.-]{1,255}

允許和括弧之間的字符組合以及1到255個重復

暫無
暫無

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

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