没有合适的资源?快使用搜索试试~ 我知道了~
正则表达式使用详解 (js).doc
需积分: 3 3 下载量 113 浏览量
2009-09-25
11:31:49
上传
评论
收藏 73KB DOC 举报
温馨提示
试读
11页
简单的说,正则表达式是一种可以用于模式匹配和替换的强有力的工具。其作用如下: 测试字符串的某个模式。(有效性验证:替换文本 )
资源详情
资源评论
资源推荐
【适用范围】
适用的 EOS 所有版本,不限制操作系统/数据库/应用服务器环境
【问题描述和定位】
JS 的正则表达式,常用的 JS 正则表达式
【解决方案和步骤】
一、正则表达式使用详解简介
简单的说,正则表达式是一种可以用于模式匹配和替换的强有力的工具。其作用如下:测
试字符串的某个模式。例如,可以对一个输入字符串进行测试,看在该字符串是否存在一
个电话号码模式或一个信用卡号码模式。这称为数据有效性验证。 替换文本。可以在文档
中使用一个正则表达式来标识特定文字,然后可以全部将其删除,或者替换为别的文字。
根据模式匹配从字符串中提取一个子字符串。可以用来在文本或输入字段中查找特定文字。
二、基本语法
在对正则表达式的功能和作用有了初步的了解之后,我们就来具体看一下正则表达式的语
法格式。 正则表达式的形式一般如下:
/love/ 其中位于“/”定界符之间的部分就是将要在目标对象中进行匹配的模式。用户只要
把希望查找匹配对象的模式内容放入“/”定界
符之间即可。为了能够使用户更加灵活的定制模式内容,正则表达式提供了专门的“元字
符”。所谓元字符就是指那些在正则表达式中具有特殊意义的专用字符,可以用来规定其前
导字符(即位于元字符前面的字符)在目标对象中的出现模式。 较为常用的元字符包括:
“+”, “*”,以及 “?”。
“+”元字符规定其前导字符必须在目标对象中连续出现一次或多次。
“*”元字符规定其前导字符必须在目标对象中出现零次或连续多次。
“?”元字符规定其前导对象必须在目标对象中连续出现零次或一次。
下面,就让我们来看一下正则表达式元字符的具体应用。
/fo+/ 因为上述正则表达式中包含“+”元字符,表示可以与目标对象中的 “fool”, “fo”, 或
者 “football”等在字母 f 后面连续出现
一个或多个字母 o 的字符串相匹配。
/eg*/ 因为上述正则表达式中包含“*”元字符,表示可以与目标对象中的 “easy”, “ego”,
或者 “egg”等在字母 e 后面连续出现零个
或多个字母 g 的字符串相匹配。
/Wil?/ 因为上述正则表达式中包含“?”元字符,表示可以与目标对象中的 “Win”, 或者
“Wilson”,等在字母 i 后面连续出现零个或一
个字母 l 的字符串相匹配。
有时候不知道要匹配多少字符。为了能适应这种不确定性,正则表达式支持限定符的概念
这些限定符可以指定正则表达式的一个给定组件必须要出现多少次才能满足匹配。
{n} n 是一个非负整数。匹配确定的 n 次。例如,'o{2}' 不能匹配 "Bob" 中的 'o',但是能匹
配 "food" 中的两个 o。
{n,} n 是一个非负整数。至少匹配 n 次。例如,'o{2,}' 不能匹配 "Bob" 中的 'o',但能匹配
"foooood" 中的所有 o。'o{1,}' 等价于
'o+'。'o{0,}' 则等价于 'o*'。
{n,m} m 和 n 均 为 非 负 整 数 , 其中 n <= m 。 最 少 匹 配 n 次 且 最 多 匹 配 m 次 。 例
如,"o{1,3}" 将匹配 "fooooood" 中的前三个 o。'o{0,1}'
等价于 'o?'。请注意在逗号和两个数之间不能有空格。
除了元字符之外,用户还可以精确指定模式在匹配对象中出现的频率。例如,/jim {2,6}/
上述正则表达式规定字符 m 可以在匹配对象中连续出
现 2-6 次,因此,上述正则表达式可以同 jimmy 或 jimmmmmy 等字符串相匹配。 在对如何
使用正则表达式有了初步了解之后,我们来看一下其它几个重要的元字符的使用方式。
\s:用于匹配单个空格符,包括 tab 键和换行符;
\S:用于匹配除单个空格符之外的所有字符;
\d:用于匹配从 0 到 9 的数字;
\w:用于匹配字母,数字或下划线字符;
\W:用于匹配所有与\w 不匹配的字符;
. :用于匹配除换行符之外的所有字符。
(说明:我们可以把\s 和\S 以及\w 和\W 看作互为逆运算) 下面,我们就通过实例看一下
如何在正则表达式中使用上述元字符。 /\s+/ 上述正
则表达式可以用于匹配目标对象中的一个或多个空格字符。 /\d000/ 如果我们手中有一份
复杂的财务报表,那么我们可以通过上述正则表达
式轻而易举的查找到所有总额达千元的款项。 除了我们以上所介绍的元字符之外,正则表
达式中还具有另外一种较为独特的专用字符,即定位符。定位符用于规定匹配模式在目标
对象中的出现位置。 较为常用的定位符包括: “^”, “$”, “\b” 以及 “\B” 。
“^”定位符规定匹配模式必须出现在目标字符串的开头
“$”定位符规定匹配模式必须出现在目标对象的结尾
“\b”定位符规定匹配模式必须出现在目标字符串的开头或结尾的两个边界之一
“\B”定位符则规定匹配对象必须位于目标字符串的开头和结尾两个边界之内,
即匹配对象既不能作为目标字符串的开头,也不能作为目标字符串的结尾。
同样,我们也可以把“^”和“$” 以及“\b”和“\B”看作是互为逆运算的两组定位符。举例来说:
/^hell/ 因为上述正则表达式中包含“^
”定位符,所以可以与目标对象中以 “hell”, “hello”或“hellhound”开头的字符串相匹配。
/ar$/ 因为上述正则表达式中包含“$”
定位符,所以可以与目标对象中以 “car”, “bar”或 “ar” 结尾的字符串相匹配。 /\bbom/ 因
为上述正则表达式模式以“\b”定位符开
头,所以可以与目标对象中以 “bomb”, 或 “bom”开头的字符串相匹配。/man\b/ 因为上述
正则表达式模式以“\b”定位符结尾,所以可
以与目标对象中以 “human”, “woman”或 “man”结尾的字符串相匹配。 为了能够方便用户更
加灵活的设定匹配模式,正则表达式允许使用者在匹配模式中指定某一个范围而不局限于
具体的字符。例如:
/[A-Z]/ 上述正则表达式将会与从 A 到 Z 范围内任何一个大写字母相匹配。
/[a-z]/ 上述正则表达式将会与从 a 到 z 范围内任何一个小写字母相匹配。
/[0-9]/ 上述正则表达式将会与从 0 到 9 范围内任何一个数字相匹配。
/([a-z][A-Z][0-9])+/ 上述正则表达式将会与任何由字母和数字组成的字符串,如 “aB0” 等
相匹配。
这里需要提醒用户注意的一点就是可以在正则表达式中使用 “()” 把字符串组合在一起。“()”
符号包含的内容必须同时出现在目标对象中
。因此,上述正则表达式将无法与诸如 “abc”等的字符串匹配,因为“abc”中的最后一个字
符为字母而非数字。 如果我们希望在正则表达
式中实现类似编程逻辑中的“或”运算,在多个不同的模式中任选一个进行匹配的话,可以
使用管道符 “|”。例如:/to|too|2/ 上述正则
表达式将会与目标对象中的 “to”, “too”, 或 “2” 相匹配。正则表达式中还有一个较为常用的
运算符,即否定符 “[^]”。与我们前文
所介绍的定位符 “^” 不同,否定符 “[^]”规定目标对象中不能存在模式中所规定的字符串。
例如:/[^A-C]/ 上述字符串将会与目标对象
中除 A,B,和 C 之外的任何字符相匹配。一般来说,当“^”出现在 “[]”内时就被视做否定
剩余10页未读,继续阅读
yexun_2009
- 粉丝: 50
- 资源: 11
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0