正则表达式在javascript中的几个应用实例

! 去除字符串两端空格的处理

如果采用传统的方式,就要可能就要采用下面的方式了
//清除左边空格
function js_ltrim(deststr)
{
if(deststr==null)return "";
var pos=0;
var retStr=new String(deststr);
if (retStr.lenght==0) return retStr;
while (retStr.substring(pos,pos+1)==" ") pos++;
retStr=retStr.substring(pos);
return(retStr);
}
//清除右边空格
function js_rtrim(deststr)
{
if(deststr==null)return "";
var retStr=new String(deststr);
var pos=retStr.length;
if (pos==0) return retStr;
while (pos && retStr.substring(pos-1,pos)==" " ) pos--;
retStr=retStr.substring(0,pos);
return(retStr);
}
//清除左边和右边空格
function js_trim(deststr)
{
if(deststr==null)return "";
var retStr=new String(deststr);
var pos=retStr.length;
if (pos==0) return retStr;
retStr=js_ltrim(retStr);
retStr=js_rtrim(retStr);
return retStr;
}

采用正则表达式,来去除两边的空格,只需以下代码
String.prototype.trim = function()
{
return this.replace(/(^s*)|(s*$)/g, "");
}

一句就搞定了,
可见正则表达式为我们节省了相当的编写代码量

! 移动手机号的校验

如果采用传统的校验方式至少就要完成下面三步的校验,
(1). 是否是数字
(2).是否是11位
(3).数字的第三位是否是5,6,7,8,9
如果采用正则表达式校验,只需以下代码
function checkMobile1(form) 
{
if (form.mobile.value > "")
{
var reg=/13[5,6,7,8,9]d{8}/; 
if ( form.mobile.value.match(reg)== null)

alert("请输入正确的移动手机号码!"); 
form.mobile.focus(); return false;


return true; 
}

从上面的代码可以看出校验移动手机号只需定义一个var reg=/13[5,6,7,8,9]d{8}/;模式匹配串就可以完成合法性校验了

! URL的校验,
条件:必须以http:// 或 https:// 开头, 端口号必须为在1-65535 之间, 以下代码完成了合法性校验

//obj:数据对象
//dispStr :失败提示内容显示字符串
function checkUrlValid( obj, dispStr)
{
if(obj == null)
{
alert("传入对象为空");
return false;
}
var str = obj.value;

var urlpatern0 = /^https?://.+$/i;
if(!urlpatern0.test(str))
{
alert(dispStr+"不合法:必须以'http://'或'https://'开头!");
obj.focus();
return false;
}

var urlpatern2= /^https?://(([a-zA-Z0-9_-])+(.)?)*(:d+)?.+$/i;
if(!urlpatern2.test(str))
{
alert(dispStr+"端口号必须为数字且应在1-65535之间!");
obj.focus();
return false;
}

var urlpatern1 =/^https?://(([a-zA-Z0-9_-])+(.)?)*(:d+)?(/((.)?(?)?=?&?[a-zA-Z0-9_-](?)?)*)*$/i;

if(!urlpatern1.test(str))
{
alert(dispStr+"不合法,请检查!");
obj.focus();
return false;
}

var s = "0";
var t =0;
var re = new RegExp(":d+","ig");
while((arr = re.exec(str))!=null)
{
s = str.substring(RegExp.index+1,RegExp.lastIndex);

if(s.substring(0,1)=="0")
{
alert(dispStr+"端口号不能以0开头!");
obj.focus();
return false;
}

t = parseInt(s);
if(t<1 || t >65535)
{
alert(dispStr+"端口号必须为数字且应在1-65535之间!");
obj.focus();
return false;
}
}
return true;
}

对url的校验,看上去有很多的代码,这是因为要给予出错提示, 否则只需var urlpatern1 =/^https?://(([a-zA-Z0-9_-])+(.)?)*(:d+)?(/((.)?(?)?=?&?[a-zA-Z0-9_-](?)?)*)*$/i; 一句就可以校验出url合法性了

javascript正则表达式检验 
/********************************************************************************* 
* EO_JSLib.js 
* javascript正则表达式检验 
**********************************************************************************/ 

//校验是否全由数字组成 
function isDigit(s) 

var patrn=/^[0-9]{1,20}$/; 
if (!patrn.exec(s)) return false 
return true 

//校验登录名:只能输入5-20个以字母开头、可带数字、“_”、“.”的字串 
function isRegisterUserName(s) 

var patrn=/^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){4,19}$/; 
if (!patrn.exec(s)) return false 
return true 

//校验用户姓名:只能输入1-30个以字母开头的字串 
function isTrueName(s) 

var patrn=/^[a-zA-Z]{1,30}$/; 
if (!patrn.exec(s)) return false 
return true 

//校验密码:只能输入6-20个字母、数字、下划线 
function isPasswd(s) 

var patrn=/^(w){6,20}$/; 
if (!patrn.exec(s)) return false 
return true 

//校验普通电话、传真号码:可以“+”开头,除数字外,可含有“-” 
function isTel(s) 

//var patrn=/^[+]{0,1}(d){1,3}[ ]?([-]?(d){1,12})+$/; 
var patrn=/^[+]{0,1}(d){1,3}[ ]?([-]?((d)|[ ]){1,12})+$/; 
if (!patrn.exec(s)) return false 
return true 

//校验手机号码:必须以数字开头,除数字外,可含有“-” 
function isMobil(s) 

var patrn=/^[+]{0,1}(d){1,3}[ ]?([-]?((d)|[ ]){1,12})+$/; 
if (!patrn.exec(s)) return false 
return true 

//校验邮政编码 
function isPostalCode(s) 

//var patrn=/^[a-zA-Z0-9]{3,12}$/; 
var patrn=/^[a-zA-Z0-9 ]{3,12}$/; 
if (!patrn.exec(s)) return false 
return true 

//校验搜索关键字 
function isSearch(s) 

var patrn=/^[^`~!@#$%^&*()+=|][]{}:;',.<>/?]{1}[^`~!@$%^&()+=|][]{}:;',.<>?]{0,19}$/; 
if (!patrn.exec(s)) return false 
return true 

function isIP(s) //by zergling 

var patrn=/^[0-9.]{1,20}$/; 
if (!patrn.exec(s)) return false 
return true 
}

时间: 2024-10-26 13:03:23

正则表达式在javascript中的几个应用实例的相关文章

JavaScript中扩展Array contains方法实例

 这篇文章主要介绍了JavaScript中扩展Array contains方法实例,本文直接给出实现代码,需要的朋友可以参考下     javascript的Array没有contains方法,有时候这会不方便,contains方法实现很简单: 代码如下: function contains(a, obj) { var i = a.length; while (i--) { if (a[i] === obj) { return true; } } return false; } 当然我们也可以扩

对象-javascript中经常提到的【实例】是什么意思?

问题描述 javascript中经常提到的[实例]是什么意思? 经常在博客或者教程里看到 实例化,或者实例这个词 比如创建一个对象实例 这样. 但是一直不是很清楚这个实例具体是什么意思, 求解! 解决方案 就是类的实例,如果学过面向对象编程就很容易明白了 function MyClass(){} var m=new MyClass();//m就是MyClass的实例,MyClass是类,new就是创建操作符 解决方案二: 对象就是类的实例化,类是对某一类事物的描述,并不实实在在存在,而new一个

模拟javascript中的sort排序(简单实例)_javascript技巧

一.javascript中sort对数据进行排序的原理 sort() 方法对数组的元素做原地的排序,并返回这个数组. sort 可能不是稳定的.默认按照字符串的Unicode码位点排序; 语法:arr.sort([compareFunction]) 参数 compareFunction 可选.用来指定按某种顺序进行排列的函数.如果省略,元素按照转换为的字符串的诸个字符的Unicode位点进行排序. 如果 compareFunction(a, b) 小于 0 ,那么 a 会被排列到 b 之前: 如

Javascript中For In语句用法实例

  本文实例讲述了Javascript中For In语句用法.分享给大家供大家参考.具体如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html;

JavaScript中的ubound函数使用实例_javascript技巧

JavaScript中ubound函数方法是返回在 VBArray 的指定维中所使用的最大索引值.使用方法: 复制代码 代码如下: safeArray.ubound(dimension) 其中safeArray是必选项.是一个 VBArray 对象. dimension是可选项.要获知其索引上界的 VBArray 的维数.如果忽略,ubound 将该参数作为 1 进行处理. 如果 VBArray 为空,ubound 方法将返回 undefined.如果 dim 大于 VBArray 的维数或为负

javascript中eval和with用法实例总结_javascript技巧

本文实例讲述了javascript中eval和with用法.分享给大家供大家参考,具体如下: 我们都知道javascript的作用域机制,但是with和eval有时会"破坏"我们对于作用域的常规理解.下面参考网上资源和自己理解总结一下eval和with的用法. 一.eval 1.eval函数:把一个字符串当作一个js表达式一样去执行它. 2.语法:eval(strScript) 注:参数strScript是必填项 3.使用说明 (1)它是有返回值的,如果参数字符串是一个表达式,就会返回

javascript中checkbox使用方法简单实例演示_javascript技巧

演示一个小小的例子:在购物车里面,我们能够勾选自己所选的商品,然后能够显示出相应的价格.1.首先显示出相应的界面:   相关代码: <body> 商品列表:<br/> 笔记本电脑<input type="checkbox" name="mm" value="3000" onclick="chose(this)" />3000 台式机<input type="checkbox&

JavaScript中的this指针详细实例

网页特效中的this指针详细实例javascript中this的用法,其实this最根本的特性还是和oo语言中的定义相吻合的.之所以有这么多看似混乱的使用方式,是因为javascript语言(解释器和语言本身的内容)本身在实现上是遵循oo的(object-based),连它的所有数据类型都是对象,也有object这样一个super object.但是这个语言在运行上(runtime),就没有遵循完备的oo特点 <script language="javascript" type=

php使用正则表达式去掉html中的注释方法_php实例

最近在项目中在需要输出浏览器中的源文件需要去掉html中的注释,在网上看了很多的方案,不过很多的答案都是一样的,并不能解决我的问题,于是就自己写正则表达式,也对正则有了更加深刻的理解. 首先比较基础的是: $a = '<!--ceshi-->ceshi'; $a = preg_replace('#<!--.*-->#' , '' , $a); var_dump($a); 上面的代码会输出ceshi. 但是如果是下面的字符串的话,就不能达到我们希望的效果了 $a = '<!--