分享
 
 
 

Java Script正则表达式入门(一)

王朝html/css/js·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

先说几句闲话:

我是一个菜鸟级程序员,属于苯鸟类。长时间来一直在门外打转,却入不得门去。灰心、郁闷。这篇文章也基本是从帮助文档上抄下来的。不对的地方还请高手多多指教,欢迎多多批评。好了,闲话少说。开始。。。

一、正则表达式是什么?为什么要用正则表达式?

你在开发Html表单时是否经常为验证某个用户填入的字段是否符合某种格式而写过一段一段的程序: 又长又臭。比如:验证用户输入的值是否为一个合格的E-Mail地址、是否为一个合适的日期等等。如果你掌握了正则表达式,你将无尽的感叹他的简洁与准确。为了证明我的说法,顺便在CSND上摘了两段程序,孰优孰劣你自己判断吧:

未使用正则表达式:

//函数名:chksafe

//功能介绍:检查是否含有"'",'\\',"/"

//参数说明:要检查的字符串

//返回值:0:是 1:不是

function chksafe(a)

{

fibdn = new Array ("'" ,"\\", "、", ",", ";", "/");

i=fibdn.length;

j=a.length;

for (ii=0;ii<i;ii++)

{ for (jj=0;jj<j;jj++)

{ temp1=a.charAt(jj);

temp2=fibdn[ii];

if (tem';p1==temp2)

{ return 0; }

}

}

return 1;

}

使用正则表达式:

/*

====================================================================

checkSafe():检测域值是否包含特殊字符,如:',/,\,",<,>;包含返回false,否则返回true。

====================================================================

*/

function isSafe(str){

var reg = /^.*[\'|\"|\/|<|>].*$/;

return !reg.test(str);

}

=========================================================================

以上程序顺手摘来,希望原作者不要怪罪。

=========================================================================

知道正则表达式的利害了吧!其实这才是正则表达式的简单的一项应用而已。更厉害的还多着呢。

那么,现在我来告诉你,正则表达式都是可以用来干什么:

1)数据格式的有效性验证:你可是已经 见识过了。

2)文本替换:文本编辑器你应该见识多了,哪个里面没有搜索和替换功能呢?如果你用过这些,那末,你已经是正则表达式的受益者了。

3)提取字符串:没有他,据说搜索引擎都不工作。呵呵。

在看看微软帮助文档上举的例子吧:

例如,如果需要搜索整个 web 站点来删除某些过时的材料并替换某些HTML 格式化标记,则可以使用正则表达式对每个文件进行测试,看在该文件中是否存在所要查找的材料或 HTML 格式化标记。用这个方法,就可以将受影响的文件范围缩小到包含要删除或更改的材料的那些文件。然后可以使用正则表达式来删除过时的材料,最后,可以再次使用正则表达式来查找并替换那些需要替换的标记。

现在知道什么是正则表达式了吧。如果你还不知道,那么我终于找到一个比我更笨的了!

不过,最后我还得再告诉你几点,让你的Mind更上一层楼:

1)正则表达式是一种进行高效、准确、简洁的进行文本字符串处理(模式验证、搜索替换等)的方法学。

2)各种主流的程序设计语言都提供了对正则表达式的支持。当然,每种语言的实现程度和实现方式都不尽相同,但基本思想是相同的。所以,只要你在一种语言中有过正则表达式的使用经验,在其他语言上应该一看就明白。(还不赶快看一下你手头的语言是怎么支持正则表达式的

)。

3)应用正则表达式时,一定要加注释。如果不加,会有人在背后骂你的,虽然你听不见。

4)如果你看完之后,还用那种笨重的方式进行字符串处理的话,你应该比我还笨一点点。哈哈。

二、在Java Script中初步尝试正则表达式:

学习正则表达式最好从模式验证开始,因为这些东西比较直观,易懂。举个最简单的例子,我们要验证一个字符串是否为一个邮政编码,如何来验证呢,先看程序:

/*

*============================================

*isPostCode():判断是否为邮政编码(中国6位数字)

*============================================

*/

function isPostCode(str){

var reg = /^\d{6}$/;//什么玩艺,乱七八糟的,两边单引号、双引号都没有!

if(reg.test(str)){

return true;

}else{

return false;

}//end if

//写简单些:return reg.test(str);if语句真罗嗦。

}//end function

看到那行乱七八糟的东西了吗?这就是精华。哈哈。他就是用来验证一个字符串是否是一个邮政编码的“模式”。

其中:

/.../:代表一个模式的开始和结束。

^:用来匹配输入字符串的开始。(定位符)

$:用来匹配输入字符串的结束。(定位符)

\:是个转义字符,\d就代表匹配一个数字。(不会不知道转义吧?)

{n}:代表前边子模式匹配的次数。(限定符)

现在明白了吧:一个字符串,从开头到结束必须是6个数字字符。(什么乱七八糟的,哈哈)。

而 reg就是你定义的一个正则表达式对象。(知道对象吧?)

test()就是reg的一个方法了,他测试给定的字符串是否和正则表达式reg中的模式是否匹配(即:给定的字符串是否符合reg中的模式)。如果符合返回true,否则返回false。

如果你还是不明白,那我再给你解释最后一遍:

/*

*============================================

*isGoodMM():判断是不是一个好MM

*============================================

*/

function isGoodMM(mm){

var you = /^你欣赏MM的标准:身高、PP等等$/;

if(you.test(mm)){//看看是不是一个好MM

return true;//Yes,that's good!

}else{

return false;//什么玩艺,哈哈。

}//end if

//祝你好运!

}//end function

如果以上的你都明白了,那么你已经入门了。明天我将和你一起深入学习Java Script 中使用正则表达式的语法知识。

下面将是我们明天探讨的主题:

三、Java Script中的正则表达式基础语法:

四、深入理解语法:

五、正则表达式的高级应用:

六、补序:正则表达式的历史

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有