jQuery基于正則表達(dá)式的表單驗(yàn)證功能示例
本文實(shí)例講述了jQuery基于正則表達(dá)式的表單驗(yàn)證功能。分享給大家供大家參考,具體如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Test</title>
<script type="text/javascript" language="javascript" src="jquery-1.7.2.min.js"></script>
<script type="text/javascript" language="javascript" >
function validata(){
if($("#username").val()==""){
alert("請(qǐng)輸入名字");
return false;
}
if($("#password").val()==""){
alert("請(qǐng)輸入密碼");
return false;
}
if($("#telephone").val()==""){
alert("請(qǐng)輸入電話號(hào)碼");
}
if($("#email").val()==""){
$("#email").val("shuangping@163.com");
}
}
function isInteger(obj){
reg=/^[-+]?\d+$/;
if(!reg.test(obj)){
$("#test").html("<b>Please input correct figures</b>");
}else{
$("#test").html("");
}
}
function isEmail(obj){
reg=/^\w{3,}@\w+(\.\w+)+$/;
if(!reg.test(obj)){
$("#test").html("<b>請(qǐng)輸入正確的郵箱地址</b>");
}else{
$("#test").html("");
}
}
function isString(obj){
reg=/^[a-z,A-Z]+$/;
if(!reg.test(obj)){
$("#test").html("<b>只能輸入字符</b>");
}else{
$("#test").html("");
}
}
function isTelephone(obj){
reg=/^(\d{3,4}\-)?[1-9]\d{6,7}$/;
if(!reg.test(obj)){
$("#test").html("<b>請(qǐng)輸入正確的電話號(hào)碼!</b>");
}else{
$("#test").html("");
}
}
function isMobile(obj){
reg=/^(\+\d{2,3}\-)?\d{11}$/;
if(!reg.test(obj)){
$("#test").html("請(qǐng)輸入正確移動(dòng)電話");
}else{
$("#test").html("");
}
}
function isUri(obj){
reg=/^http:\/\/[a-zA-Z0-9]+\.[a-zA-Z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$/;
if(!reg.test(obj)){
$("#test").html($("#uri").val()+"請(qǐng)輸入正確的inernet地址");
}else{
$("#test").html("");
}
}
//document加載完畢執(zhí)行
$(document).ready(function() {
// do something here
//隔行換色功能
$("p").each(function(i){
this.style.color=['red','green','blue','black'][i%2]
});
//eq(2)獲取$("p")集合的第3個(gè)元素
$("p").eq(2).click(function(){$("#display").css("color","blue")});
//所有test中的p都附加了樣式"over"。
$("#test>p").addClass("over");
//test中的最后一個(gè)p附加了樣式"out"。
$("#test p:last").addClass("out");
//選擇同級(jí)元素還沒看懂
//$('#faq').find('dd').hide().end().find('dt').click(function()
//選擇父級(jí)元素
$("a").hover(
function(){$(this).parents("p").addClass("out")},
function(){$(this).parents("p").removeClass("out")})
//hover鼠標(biāo)懸停效果,toggle每次點(diǎn)擊時(shí)切換要調(diào)用的函數(shù) ,
//trigger(eventtype): 在每一個(gè)匹配的元素上觸發(fā)某類事件,
//bind(eventtype,fn),unbind(eventtype): 事件的綁定與反綁定從每一個(gè)匹配的元素中(添加)刪除綁定的事件。
//方法的連寫
$("#display").hover(function(){
$(this).addClass("over");
},function(){
$(this).removeClass("over");
})
.click(function(){alert($("#display").text())});
if($.browser.msie){//判斷瀏覽器,若是ie則執(zhí)行下面的功能
//聚焦
$("input[@type=text],textarea,input[@type=password]")
.focus(function(){$(this).css({background:"white",border:"1px solid blue"})})
//也可以這樣連著寫,
//.blur(function(){$(this).css({background:"white",border:"1px solid black"})})
//失去焦點(diǎn)
//css樣式可以通過addClass()來添加
$("input[@type=text],textarea,input[@type=password]")
.blur(function(){$(this).css({background:"white",border:"1px solid black"});});
}
});
</script>
<style type="text/css">
.over{
font-size:large;
font-style:italic;
}
.out{
font-size:small;
}
</style>
</head>
<body >
<div id="display">demo</div>
<div id="test">
<p>adfa<a>dfasfa</a>sdfasdf</p>
<p>adfadfasfasdfasdf</p>
<p>adfadfasfasdfasdf</p>
<p>adfadfasfasdfasdf</p>
</div>
<form id="theForm">
isString<div><input type="text" id="username" onblur="isString(this.value)"/></div>
isInteger<div><input type="text" id="password" onblur="isInteger(this.value)"/></div>
isTelephone<div><input type="text" id="telephone" onblur="isTelephone(this.value)"/></div>
isMobile<div><input type="text" id="mobile" onblur="isMobile(this.value)"/></div>
isEmail<div><input type="text" id="email" onblur="isEmail(this.value)"/></div>
isUri<div><input type="text" id="uri" onblur="isUri(this.value)"/></div>
<div><input type="button" value="Validata" onclick="return validata();" /></div>
</form>
</body>
</html>
附:常用的js驗(yàn)證函數(shù):
網(wǎng)站首頁表單js:
function checkVaild()
{
var User=$("#Mobile").val();
var reg=/^(\+\d{2,3}\-)?\d{11}$/;
if (User=="")
{
alert("手機(jī)號(hào)碼不能為空") ;
return false;
}
if(!reg.test(User)){
alert("手機(jī)號(hào)輸入錯(cuò)誤") ;
return false ;
}
return true ;
}
正則表達(dá)式特殊字符的過濾:
function doValidate(value)
{
vkeyWords=/^[^`~!@#$%^&*()+=|\\\][\]\{\}:;'\,.<>/?]{1}[^`~!@$%^&()+=|\\\][\]\{\}:;'\,.<>?]{0,19}$/;
if(value==null || value=="")
{
alert("請(qǐng)輸入正確的查詢參數(shù)");
return false;
}
if(!vkeyWords.test(value))
{
alert("您輸入的查詢參數(shù)不正確,請(qǐng)重新輸入!");
return false;
}
return true;
}
PS:這里再為大家提供2款非常方便的正則表達(dá)式工具供大家參考使用:
JavaScript正則表達(dá)式在線測(cè)試工具:
http://tools.jb51.net/regex/javascript
正則表達(dá)式在線生成工具:
http://tools.jb51.net/regex/create_reg
更多關(guān)于jQuery相關(guān)內(nèi)容可查看本站專題:《jQuery正則表達(dá)式用法總結(jié)》、《jQuery字符串操作技巧總結(jié)》、《jQuery操作xml技巧總結(jié)》、《jQuery擴(kuò)展技巧總結(jié)》、《jquery選擇器用法總結(jié)》及《jQuery常用插件及用法總結(jié)》
希望本文所述對(duì)大家jQuery程序設(shè)計(jì)有所幫助。
相關(guān)文章
增強(qiáng)用戶體驗(yàn)友好性之jquery easyui window 窗口關(guān)閉時(shí)的提示
在項(xiàng)目中,客戶提出這么個(gè)要求,就是在關(guān)閉彈出的窗口的時(shí)候,如果點(diǎn)擊 紅X 或 取消按鈕 則提示 ”確認(rèn)保存了當(dāng)前的操作“ 這么個(gè)信息,否則就不提示啦2012-06-06
jquery ui dialog里調(diào)用datepicker的問題
一個(gè)項(xiàng)目中使用了在dialog中做查詢條件的表單,其中用到了日期作為查詢條件,使用datepicker時(shí)總被dialog遮擋住2009-08-08
jQuery動(dòng)態(tài)添加.active 實(shí)現(xiàn)導(dǎo)航效果代碼思路詳解
這篇文章主要介紹了jQuery動(dòng)態(tài)添加.active 實(shí)現(xiàn)導(dǎo)航效果代碼思路詳解,需要的朋友可以參考下2017-08-08
有關(guān)于eclipse配置spket需要注意的一些地方
用eclipse開發(fā)jquery程序,可以安裝spket插件,這樣在寫代碼的時(shí)候,就會(huì)有智能感知.eclipse配置spket的文章網(wǎng)上到處都是,spket官網(wǎng)上也有介紹.但配置后有的人無論如何也沒有智能感知提示,我就是其中一個(gè).2013-04-04
jQuery綁定事件不執(zhí)行但alert后可以正常執(zhí)行
這篇文章主要為大家解決下為什么jQuery綁定事件不執(zhí)行而alert后可以正常執(zhí)行,需要的朋友可以參考下2014-06-06

