正则表达式.doc
《正则表达式.doc》由会员分享,可在线阅读,更多相关《正则表达式.doc(6页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、如有侵权,请联系网站删除,仅供学习与交流正则表达式【精品文档】第 6 页正则表达式可以很恐怖,真得很恐怖。幸运的是,一旦记住每个符号所表达的意思,恐惧就会快速消退。如果你对正则表达式一无所知,正如文章标题,那你又就有很多东西要学了。下面让我们马上开始吧。第一节:基础学习想要高效地学习和掌握正则表达式的关键是花一天的时间记住所有符号。这可能是我所能提供的最好的建议。坐下来,做些记忆卡片,然后记住它们。以下为最常见的一些符号:. - 匹配任意字符,换行符除外(如果 dotall 为 false)。* - 该符号前面的字符,匹配 0 次或多次。+ - 该符号前面的字符,匹配 1次或多次? - 该符号
2、前面的字符是可选的。匹配 0 次或 1 次。d - 匹配任何单个数字。w - 匹配任何一个字符(包括字母数字以及下划线)。XYZ - 匹配字符组中的任意一个字符,即 X、Y、Z 中的任意一个。XYZ+ - 匹配字符组中的一个或多个字符。$ - 匹配字符串结束的位置。 - 匹配字符串开始的位置。a-z - 当出现在字符类中时, 表示 NOT(非);对于该示例,表示匹配任何非小写字母。很闷吧,不过还是记住它们,记住之后你会知道好处的。工具你认为一个表达式是正确的,非常正确,但就是无法得到想要的结果,这时你可能会产生将头发拔光的冲动。去下载 RegExr 桌面应用程序吧,这个对你是必不可少的,而且玩
3、起来非常有趣的。它提供实时检查,还有一个侧边栏,里面包含了每个字符的定义和用户,非常详细。第二节:正则表达式傻瓜教程:抓屏视频下一步是学习如何真正地使用这些符号。如果视频是你的偏好,那你走运了。这里有五个课程的视频教程,非常适合你:“正则表达式傻瓜教程”。(Jeffery Way:在这一系列视频教程中,我将交给你如何在JavaScript和PHP中高效的使用正则表达式。我会假设你是从零开始。)第三节:正则表达式和 JavaScript本节为最后一节,我们来看看JavaScript 方法如何使用正则表达式。1. Test()这个方法接受单个字符串参数,然后返回一个布尔值,该值表明是否找到一个批评
4、。如果你不需要对特定的匹配结果进行操作,比如,验证用户名,“test”方法已足够完成这个任务。示例var username = JohnSmith; alert(/A-Za-z_-+/.test(username); / returns true 在上面的代码中,我们首先声明一个正则表达式,表示仅允许大写或小写字母、下划线和连字符。将这些可接受的字符放在括号中,就指定了一个字符组。紧随其后的 + 号表示我们想要正在寻找的是一个或多个前述字符组中的字符。然后使用该范式对变量“JohnSmith”进行测试。由于存在匹配,浏览器的显示框中将显示 true。2. Split()你可能对 split 方
5、法已经很熟了。该方法接受单个正规表达式,表示在哪里进行“分割”。请注意,如果喜欢,你还可以使用字符串。var str = this is my string; alert(str.split(/s/); / alerts this, is, my, string 上面代码中的 s 表示单个空格,通过它,我们将字符串分割为一个数组。如果想要访问某个特定的值,使用相应的索引即可。var str = this is my this string; alert(str.split(/s/)3); / alerts string 3. replace()可能你已经想到了,replace 方法可以用来将文
6、本中的一部分(由字符串或正则表达式表示)替换为不同的字符串。示例如果想要将“Hello, World”改为“Hello, Universe”,可以使用下面的代码:var someString = Hello, World; someString = someString.replace(/World/, Universe); alert(someString); / alerts Hello, Universe 应留意的是,对于这个简单的示例,我们本来可以简单的使用.replace(World, Universe)。另外,使用 replace 方法不会自动重写变量的值,我们必须将返回值再次分配
7、给这个变量:someString。示例 2再举一个例子,假设用户要在我们的网站注册一个账号,我们可能想要提供一些基础的安全预防措施。也许我们想要留下他们的用户名,而删除其他任何符号,引号、分号等等。对于 JavaScript 和正则表达式,执行这类任务是桩琐碎的小事情。var username = J;ohnSmith;%; username = username.replace(/A-Za-zd_-+/, ); alert(username); / JohnSmith;% 看到最后生成的显示值,有人可能会想,上面的代码有错误。事实并非如此。你仔细看看,会发现字母“J”后的分号被删除了,正如我
8、们所期望的那样。为了通知引擎继续搜索字符串查找更多匹配,我们可以做结束的斜杠后面直接添加一个“g”,这个修饰符或标记表示“global(全局)”。修改后的代码如下所示:var username = J;ohnSmith;%; username = username.replace(/A-Za-zd_-+/g, ); alert(username); / alerts JohnSmith 现在,正则表达式搜索整个字符串,替换所有必要的字符。让我们看看关键的表达式(.replace(/A-Za-zd_-+/g, );),要注意,括号内的向上箭头(即 )非常重要。当放在字符组中时,该符号表示“找到所
9、有不是”。现在回头在看看这个代码,它表示,找到所有不是字母、数字(由 d 表示)、下划线或连字符的符号;如果找到一个匹配,将其替换为空,事实上就是删除该字符。4. Match()与test方法不同,match() 返回一个包含所有找到的批评的数组。示例var name = JeffreyWay; alert(name.match(/e/); / alerts e 上面的代码将显示一个字母“e”。但是,在字符串“JeffreyWay”中实际上包含2个 e。同样,这次我们还是要使用修饰符“g”来声明一个全局搜索。var name = JeffreyWay; alert(name.match(/e/
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 正则 表达式
限制150内