- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[计算机]JavaScript正则表达式完全学习手册
JavaScript正则表达式:菜鸟入门指导
第一节:基础学习
想要高效地学习和掌握正则表达式的关键是花一天的时间记住所有符号。这可能是我所能提供的最好的建议。坐下来,做些记忆卡片,然后记住它们。以下为最常见的一些符号:. - 匹配任意字符,换行符除外* - 该符号前面的字符,匹配 0 次或多次。+ - 该符号前面的字符,匹配 1次或多次? - 该符号前面的字符是可选的。匹配 0 次或 1 次。\d - 匹配任何单个数字。\w - 匹配任何一个字符(包括字母数字以及下划线)。[XYZ] - 匹配字符组中的任意一个字符,即 X、Y、Z 中的任意一个。[XYZ]+ - 匹配字符组中的一个或多个字符。$ - 匹配字符串结束的位置。^ - 匹配字符串开始的位置。[^a-z] - 当出现在字符类中时,^ 表示 NOT(非);对于该示例,表示匹配任何非小写字母。
很闷吧,不过还是记住它们,记住之后你会知道好处的。第节:正则表达式和 JavaScript
本节为最后一节,我们来看看JavaScript 方法如何使用正则表达式。
1. Test()
这个方法接受单个字符串参数,然后返回一个布尔值,该值表明是否找到一个。如果你不需要对特定的匹配结果进行操作,比如,验证用户名,“test”方法已足够完成这个任务。
示例
var?username?=?JohnSmith;?? ?
alert(/[A-Za-z_-]+/.test(username));?//?returns?true???
在上面的代码中,我们首先声明一个正则表达式,表示仅允许大写或小写字母、下划线和连字符。将这些可接受的字符放在括号中,就指定了一个字符组。紧随其后的 + 号表示我们想要正在寻找的是一个或多个前述字符组中的字符。然后使用该范式对变量“JohnSmith”进行测试。由于存在匹配,浏览器的显示框中将显示 true。
2. Split()
你可能对 split 方法已经很熟了。该方法接受单个正规表达式,表示在哪里进行“分割”。请注意,如果喜欢,你还可以使用字符串。
var?str?=?this?is?my?string;?? ?
alert(str.split(/\s/));?//?this,?is,?my,?string???
上面代码中的 \s 表示单个空格,通过它,我们将字符串分割为一个数组。如果想要访问某个特定的值,使用相应的索引即可。
var?str?=?this?is?my?this?string;?? ?
alert(str.split(/\s/)[]);?//?输出string???
3. replace()
可能你已经想到了,replace 方法可以用来将文本中的一部分(由字符串或正则表达式表示)替换为不同的字符串。
示例
如果想要将“Hello, World”改为“Hello, Universe”,可以使用下面的代码:
var?someString?=?Hello,?World;?? ?
someString?=?someString.replace(/World/,?Universe);?? ?
alert(someString);?//?Hello,?Universe???
应留意的是,对于这个简单的示例,我们本来可以简单的使用.replace(World, Universe)。另外,使用 replace 方法不会自动重写变量的值,我们必须将返回值再次分配给这个变量:someString。
示例 2
再举一个例子,假设用户要在我们的网站注册一个账号,我们可能想要提供一些基础的安全预防措施。也许我们想要留下他们的用户名,而删除其他任何符号,引号、分号等等。对于 JavaScript 和正则表达式,执行这类任务是桩琐碎的小事情。
var?username?=?J;ohnSmith;@%;?? ?
username?=?username.replace(/[^A-Za-z\d_-]+/,?);?? ?
alert(username);?//?输出;@%???
看到最后生成的显示值,有人可能会想,上面的代码有错误。事实并非如此。你仔细看看,会发现字母“J”后的分号被删除了,正如我们所期望的那样。为了通知引擎继续搜索字符串查找更多匹配,我们可以做结束的斜杠后面直接添加一个“g”,这个修饰符或标记表示“global(全局)”。修改后的代码如下所示:
var?username?=?J;ohnSmith;@%;?? ?
username?=?username.replace(/[^A-Za-z\d_-]+/g,?);?? ?
alert(username);?//?输出JohnSmith???
现在,正则表达式搜索整个字符串,替换所有必要的字
文档评论(0)