现在加入我们要对单词的正确性进行匹配,对于“flower”这个单词来说,不管是单数“flower”还是复数“flowers”,都是正确的写法,而对于“flowersss”则是不正确的。
使用前面的知识,无法完成这样的匹配:
对于“flowers+”来说,它不能匹配“flower”,因为它只能匹配“flower”后面有一个或多个“s”的单词,于是,“flowers”和“flowersss”都可以被匹配。
对于“flowers* ”来说,它虽然能够匹配“flower”和“flowers”,但是一样可以匹配 “flowersss”。
正则表达式中,使用“?”来匹配零个或一个字符。其使用方式与“+”和“*”相同。
对于本例而言,其使用方法如下:
flowers?
效果演示
flower
flowers
flowersss
本例代码
function reg_replace() { var test = document.getElementById("test"); aim = "flowers?"; var regex = new RegExp("("+aim+")","g"); test.innerHTML = test.innerHTML.replace(regex,"<span style='background-color:orange'>$1</span>"); }
很明显,本章的所讲述的多字符匹配中,“+”、“*”、“?”都是元字符,如果要对它们进行匹配,需要使用“\”进行转义:“\+”、“\*”、“\?”。
延伸阅读
此文章所在专题列表如下:
- 什么是正则表达式?
- 正则入门:匹配固定的单个字符
- 正则入门:匹配任意的单个字符
- 正则入门:字符组的使用
- 正则入门:在字符组中使用字符区间
- 正则入门:反义字符组的使用
- 正则入门:匹配空字符
- 正则入门:匹配一个或多个字符
- 正则入门:匹配零个或多个字符
- 正则入门:匹配零个或一个字符串
- 正则入门:匹配固定数目的字符
- 正则入门:匹配区间内数目的字符
- 正则入门:贪婪匹配
- 正则入门:惰性匹配
- 正则入门:两个匹配模式
- 正则入门:匹配单词边界
- 正则入门:边界的定义与相对性
- 正则入门:匹配非单词边界
- 正则入门:匹配文本首和尾
- 正则入门:子模式
- 正则入门:“或”匹配
- 正则入门:后向引用文本替换
- 正则入门:非获取匹配
- 正则总结:JavaScript中的正则表达式
- 正则总结:正则表达式在js中的高级应用
本文地址:http://www.nowamagic.net/librarys/veda/detail/1034,欢迎访问原出处。
大家都在看