1. 程式人生 > >PHP常用(正則)表單驗證類

PHP常用(正則)表單驗證類

這些天一直在整理專案,就把一些常用的總結了一下.

<?php
/**
* 頁面作用:常用表單驗證類
*/
class class_post
{
//驗證是否為指定長度的字母/數字組合
function fun_text1($num1,$num2,$str)
{
     return (preg_match("/^[a-zA-Z0-9]{".$num1.",".$num2."}$/",$str))?true:false;
}
 
//驗證是否為指定長度數字
function fun_text2($num1,$num2,$str)
{
     return (preg_match("/^[0-9]{".$num1.",".$num2."}$/i",$str))?true:false;
}

//驗證是否為指定長度漢字
function fun_font($num1,$num2,$str)
{
// preg_match("/^[\xa0-\xff]{1,4}$/", $string);
    return (preg_match("/^([\x81-\xfe][\x40-\xfe]){".$num1.",".$num2."}$/",$str))?true:false;
}

//驗證身份證號碼
function fun_status($str)
{
     return (preg_match('/(^([\d]{15}|[\d]{18}|[\d]{17}x)$)/',$str))?true:false;
}
 
//驗證郵件地址
function fun_email($str){
     return (preg_match('/^[_\.0-9a-z-]
[email protected]
([0-9a-z][0-9a-z-]+\.)+[a-z]{2,4}$/',$str))?true:false; } //驗證電話號碼 function fun_phone($str) { return (preg_match("/^((\(\d{3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}$/",$str))?true:false; } //驗證郵編 function fun_zip($str) { return (preg_match("/^[1-9]\d{5}$/",$str))?true:false; } //驗證url地址 function fun_url($str) { return (preg_match("/^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$/",$str))?true:false; } // 資料入庫 轉義 特殊字元 傳入值可為字串 或 一維陣列 function data_join(&$data) { if(get_magic_quotes_gpc() == false) { if (is_array($data)) { foreach ($data as $k => $v) { $data[$k] = addslashes($v); } } else { $data = addslashes($data); } } Return $data; } // 資料出庫 還原 特殊字元 傳入值可為字串 或 一/二維陣列 function data_revert(&$data) { if (is_array($data)) { foreach ($data as $k1 => $v1) { if (is_array($v1)) { foreach ($v1 as $k2 => $v2) { $data[$k1][$k2] = stripslashes($v2); } } else { $data[$k1] = stripslashes($v1); } } } else { $data = stripslashes($data); } Return $data; } // 資料顯示 還原 資料格式 主要用於內容輸出 傳入值可為字串 或 一/二維陣列 // 執行此方法前應先data_revert(),表單內容無須此還原 function data_show(&$data) { if (is_array($data)) { foreach ($data as $k1 => $v1) { if (is_array($v1)) { foreach ($v1 as $k2 => $v2) { $data[$k1][$k2]=nl2br(htmlspecialchars($data[$k1][$k2])); $data[$k1][$k2]=str_replace(" "," ",$data[$k1][$k2]); $data[$k1][$k2]=str_replace("\n","<br>\n",$data[$k1][$k2]); } } else { $data[$k1]=nl2br(htmlspecialchars($data[$k1])); $data[$k1]=str_replace(" "," ",$data[$k1]); $data[$k1]=str_replace("\n","<br>\n",$data[$k1]); } } } else { $data=nl2br(htmlspecialchars($data)); $data=str_replace(" "," ",$data); $data=str_replace("\n","<br>\n",$data); } return $data; } } ?>

"^[0-9]*[1-9][0-9]*$"   //正整數 
"^((-\d+)|(0+))$"   //非正整數(負整數 + 0) 
"^-[0-9]*[1-9][0-9]*$"   //負整數 
"^-?\d+$"     //整數 
"^\d+(\.\d+)?$"   //非負浮點數(正浮點數 + 0)

"^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$"   //正浮點數 

"^((-\d+(\.\d+)?)|(0+(\.0+)?))$"//非正浮點數(負浮點數 + 0) "^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$"   //負浮點數 
"^(-?\d+)(\.\d+)?$"   //浮點數 
"^[A-Za-z]+$"   //由26個英文字母組成的字串 
"^[A-Z]+$"   //由26個英文字母的大寫組成的字串 
"^[a-z]+$"   //由26個英文字母的小寫組成的字串 
"^[A-Za-z0-9]+$"   //由數字和26個英文字母組成的字串 
"^\w+$"   //由數字、26個英文字母或者下劃線組成的字串 
"^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$"    //email地址 
"^[a-zA-z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$"//url 
/^(d{2}|d{4})-((0([1-9]{1}))|(1[1|2]))-(([0-2]([1-9]{1}))|(3[0|1]))$/ // 年-月-日 
/^((0([1-9]{1}))|(1[1|2]))/(([0-2]([1-9]{1}))|(3[0|1]))/(d{2}|d{4})$/ // 月/日/年 
"^([w-.]+)@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.)|(([w-]+.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(]?)$" //Emil 
/^((\+?[0-9]{2,4}\-[0-9]{3,4}\-)|([0-9]{3,4}\-))?([0-9]{7,8})(\-[0-9]+)?$/ //電話號碼 

"^(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5])$" //IP地址

匹配中文字元的正則表示式: [\u4e00-\u9fa5] 
匹配雙位元組字元(包括漢字在內):[^\x00-\xff] 
匹配空行的正則表示式:\n[\s| ]*\r 
匹配HTML標記的正則表示式:/<(.*)>.*<\/\1>|<(.*) \/>/ 
匹配首尾空格的正則表示式:(^\s*)|(\s*$) 
匹配Email地址的正則表示式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)* 
匹配網址URL的正則表示式:^[a-zA-z]+://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?$ 
匹配帳號是否合法(字母開頭,允許5-16位元組,允許字母數字下劃線):^[a-zA-Z][a-zA-Z0-9_]{4,15}$ 
匹配國內電話號碼:(\d{3}-|\d{4}-)?(\d{8}|\d{7})? 
匹配騰訊QQ號:^[1-9]*[1-9][0-9]*$

利用正則表示式限制網頁表單裡的文字框輸入內容: 
用正則表示式限制只能輸入中文:onkeyup="value=value.replace(/[^u4E00-u9FA5]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^u4E00-u9FA5]/g,''))" 
用正則表示式限制只能輸入全形字元: onkeyup="value=value.replace(/[^uFF00-uFFFF]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^uFF00-uFFFF]/g,''))" 

用正則表示式限制只能輸入數字:onkeyup="value=value.replace(/[^d]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^d]/g,''))"

用正則表示式限制只能輸入數字和英文:onkeyup="value=value.replace(/[W]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^d]/g,''))"


=========常用正則式

匹配中文字元的正則表示式: [\u4e00-\u9fa5] 
匹配雙位元組字元(包括漢字在內):[^\x00-\xff] 
匹配空行的正則表示式:\n[\s| ]*\r 
匹配HTML標記的正則表示式:/<(.*)>.*<\/\1>|<(.*) \/>/ 
匹配首尾空格的正則表示式:(^\s*)|(\s*$) 
匹配IP地址的正則表示式:/(\d+)\.(\d+)\.(\d+)\.(\d+)/g // 
匹配Email地址的正則表示式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)* 
匹配網址URL的正則表示式:http://(/[\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)? 
sql語句:^(select|drop|delete|create|update|insert).*$

非負整數:^\d+$ 
正整數:^[0-9]*[1-9][0-9]*$ 
非正整數:^((-\d+)|(0+))$ 
負整數:^-[0-9]*[1-9][0-9]*$ 
整數:^-?\d+$ 
非負浮點數:^\d+(\.\d+)?$ 
正浮點數:^((0-9)+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$ 
非正浮點數:^((-\d+\.\d+)?)|(0+(\.0+)?))$ 
負浮點數:^(-((正浮點數正則式)))$ 
英文字串:^[A-Za-z]+$ 
英文大寫串:^[A-Z]+$ 
英文小寫串:^[a-z]+$ 
英文字元數字串:^[A-Za-z0-9]+$ 
英數字加下劃線串:^\w+$ 
E-mail地址:^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$ 
URL:^[a-zA-Z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\s*)?$ 或:^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$
郵政編碼:^[1-9]\d{5}$ 中文:^[\u0391-\uFFE5]+$ 
電話號碼:^((\(\d{2,3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$ 
手機號碼:^((\(\d{2,3}\))|(\d{3}\-))?13\d{9}$ 
雙位元組字元(包括漢字在內):^\x00-\xff
匹配首尾空格:(^\s*)|(\s*$)(像vbscript那樣的trim函式) 
匹配HTML標記:<(.*)>.*<\/\1>|<(.*) \/> 
匹配空行:\n[\s| ]*\r 
提取資訊中的網路連結:(h|H)(r|R)(e|E)(f|F) *= *('|")?(\w|\\|\/|\.)+('|"| *|>)? 
提取資訊中的郵件地址:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)* 
提取資訊中的圖片連結:(s|S)(r|R)(c|C) *= *('|")?(\w|\\|\/|\.)+('|"| *|>)? 
提取資訊中的IP地址:(\d+)\.(\d+)\.(\d+)\.(\d+) 
提取資訊中的中國手機號碼:(86)*0*13\d{9} 
提取資訊中的中國固定電話號碼:(\(\d{3,4}\)|\d{3,4}-|\s)?\d{8} 
提取資訊中的中國電話號碼(包括移動和固定電話):(\(\d{3,4}\)|\d{3,4}-|\s)?\d{7,14} 
提取資訊中的中國郵政編碼:[1-9]{1}(\d+){5} 
提取資訊中的浮點數(即小數):(-?\d*)\.?\d+ 
提取資訊中的任何數字:(-?\d*)(\.\d+)? IP:(\d+)\.(\d+)\.(\d+)\.(\d+) 
電話區號:/^0\d{2,3}$/ 
騰訊QQ號:^[1-9]*[1-9][0-9]*$ 
帳號(字母開頭,允許5-16位元組,允許字母數字下劃線):
^[a-zA-Z][a-zA-Z0-9_]{4,15}$ 
中文、英文、數字及下劃線:^[\u4e00-\u9fa5_a-zA-Z0-9]+$ 


如果本文讓您駐足,那就請您點個贊吧!~Zan!~zan!

相關推薦

PHP常用()驗證

這些天一直在整理專案,就把一些常用的總結了一下. <?php /** * 頁面作用:常用表單驗證類 */ class class_post { //驗證是否為指定長度的字母/數字組合 function fun_text1($num1,$num2,$str) {

js驗證(trim封裝)

筆記見本地js特效day05, 規律: 座機驗證: 匹配電話號碼:開頭3-4位(首位為0),後面7或8位。 (樞紐城市的座機以0開頭。人口多後8位,人口少後

php常用驗證用法實例

字符串 str brush email 數據格式 AR 漢字 quotes 字母 <?php /** * 頁面作用:常用表單驗證類 * 作 者:欣然隨風 * QQ:276624915 */ class class_post { //驗證是否為指定長度的字母/數字組合

PHP常用驗證

手機號,身份證,ip驗證 //正則驗證手機號 正確返回 true function preg_mobile($mobile) { if(preg_match("/^1[34578]\d{9}$/", $mobile)) { return TRUE; } else {

PHP 常用表達式

參考 arr replace search 上一個 tput 位或 $1 以及 PHP代碼 $str = preg_replace("/(<a.*?>)(.*?)(<\/a>)/", ‘\1<span class="link">\2<

jQuery基礎(常用插件 驗證,圖片放大鏡,自定義對象級,jQuery UI,面板折疊)

此外 cookie值 添加圖標 tor 列表 需要 droppable 使用 ddn 1.表單驗證插件——validate 該插件自帶包含必填、數字、URL在內容的驗證規則,即時顯示異常信息,此外,還允許自定義驗證規則,插件調用方法如下: $(form).vali

JS的常用表達式 驗證密碼用戶名等

register 字符串 表達式 text .exe exec 編碼 arc font //校驗是否全由數字組成 function isDigit(s) { var patrn=/^[0-9]{1,20}$/; if (!patrn.exec(s)) return fals

php 常用表達 郵箱 手機號啥的

mail con ephone log passwords 密碼 mob bsp 郵箱 class RegexConst { const REGEX_MOBLIE_86 = ‘/^1(3|4|5|7|8)\d{9}$/‘;//中國手機號 const REG

JS驗證-12個常用的JS驗證

電子 上海市 輸入 中文 new sid 項目 .proto 長度 JS表單驗證-12個常用的JS表單驗證 最近有個項目用到了表單驗證,小編在項目完結後的這段時間把常用的JS表單驗證demo整理了一下,和大家一起分享~~~ 1. 長度限制 <p&g

php 常用

style UNC php 常用 col false code pan class 1 手機 /^1[34578]\d{9}$/2 qq /^[1-9][0-9]{5,10}$/3 郵箱 /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((

php 常用表示式彙總

1.    平時做網站經常要用正則表示式,下面是一些講解和例子,僅供大家參考和修改使用:  2.    "^\d+$"  //非負整數(正整數 + 0)  3.   &n

easyui常用自定義驗證

例如 校驗輸入框只能錄入0-1000之間 最多有2位小數的數字 表單<input type="text" id="rate" name="rate" required="true" class="easyui-validatebox"   validType="rateCheck

jQuery validate外掛做整數驗證

jQuery validate外掛為表單提供了強大的表單驗證功能。 詳細參考菜鳥教程: http://www.runoob.com/jquery/jquery-plugin-validate.html 下面是js表單驗證正整數的例子: //自定義校驗,正整數 jQuery.vali

PHP常用表示式彙總

 1.    平時做網站經常要用正則表示式,下面是一些講解和例子,僅供大家參考和修改使用: 2.    "^\d+$"  //非負整數(正整數 + 0) 3.    "^[0-9]*[1-9][0-9]*$"  //正整數 4.    "^((-\d+)|(0+)

我的常用-表示式(郵箱驗證)

PHP - 驗證郵件 $email = test_input($_POST["email"]); if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/",$email)) { $emailErr = "非法郵箱格式"; } PH

12個常用的JS驗證

××× uppercase tel 替換 textarea exec start true sch 長度限制 <form name="a" onsubmit="return test()"> <textarea name="b" cols="40" r

Angular 驗證庫 ngx-validator 1.0 正式釋出

  背景介紹 之前寫了一篇 《如何優雅的使用 Angular 表單驗證》,結尾處介紹了統一驗證反饋的類庫  ngx-validator  ,由於這段時間一直在新模組做微前端以及相關業務元件庫,工具等開發,一直拖到現在,目前正式版 1.0 終於

Java 註冊常用表示式驗證工具常用表示式大集合。 1. 電話號碼 2. 郵編 3. QQ 4. E-mail 5. 手機號碼 ……

/* Java 表單註冊常用正則表示式驗證工具類,常用正則表示式大集合。 1. 電話號碼  2. 郵編  3. QQ  4. E-mail  5. 手機號碼  6. URL  7. 是否為數字  8. 是否為中文  9. 身份證  10. 域名  11. IP*/ pack

前端驗證常用的15個JS表達式

ntp html 正整數 手機號碼 表達式 浮點數 als 浮點 個數 在表單驗證中,使用正則表達式來驗證正確與否是一個很頻繁的操作,本文收集整理了15個常用的javaScript正則表達式,其中包括用戶名、密碼強度、整數、數字、電子郵件地址(Email)、手機號碼、身份證

整理前端驗證常用的15個JS表達式

包含 身份證號 表達 name 3-9 字母 pre neu htm 1 用戶名正則 //用戶名正則,4到16位(字母,數字,下劃線,減號) var uPattern = /^[a-zA-Z0-9_-]{4,16}$/; //輸出 true console.log(uPat