[英]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.