您的位置:首页 > Web前端 > JavaScript

javascript正则表达式

2012-11-22 19:32 211 查看
<script type="text/javascript">
/*
一般用RegExp对象对字符串验证,创建RegExp对象有两种方式,new或直接写文本
new或写文本时第二个参数可不写,写则可选择以下字符输入
"g"  - 执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。
"i"  - 忽略大小写
"gi" - 全局同时忽略大小写
"m"  - 多行匹配

RegExp对象的属性
global        RegExp 对象是否具有标志 g。
ignoreCase    RegExp 对象是否具有标志 i。
lastIndex     一个整数,标示开始下一次匹配的字符位置。
multiline     RegExp 对象是否具有标志 m。
source        正则表达式的源文本。

RegExp对象有三个方法
compile("正则表达式","指定匹配类型")    编译正则表达式。两个参数和创建构造方法时相同
exec("要检验的字符串")                检索字符串中指定的值。返回找到的值,并确定其位置。
test("要检验的字符串")                检索字符串中指定的值。返回 true 或 false。
*/

//创建RegExp对象方法一
var regExp = new RegExp("([a-z][A-Z][0-9])+","g");      //正则表达式用 "" 括起来,不用 //括起来
//创建RegExp对象方法二,表达式外的g可不写
var regExp = /([a-z][A-Z][0-9])+/g;                     //正则表达式用 // 括起来,不用 "" 括起来
//alert(regExp.test("aB0"));

//常用验证表达式
//校验密码:只能输入6-20个字母、数字、下划线
var patrn=/^(\w){6,20}$/;
//校验普通电话、传真号码:可以"+"开头,除数字外,可含有"-"
var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/;
//校验手机号码:必须以数字开头,除数字外,可含有"-"
var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/;
//校验邮政编码
var patrn=/^[a-zA-Z0-9 ]{3,12}$/;
//校验搜索关键字
var patrn=/^[^`~!@#$%^&*()+=|\\\][\]\{\}:;'\,.<>/?]{1}[^`~!@$%^&()+=|\\\][\]\{\}:;'\,.<>?]{0,19}$/;

/*
规则
基本的验证是查找给定字符串中是否有符合规则的字符串,有时需要返回查找的结果,并且还可以指定当查找到一个符合规则字符串后是否还往下查找返回,规则包括位置及值及出现次数等

各种规则符只对临近的单字符或用括号括起来的字符串起作用,至于对于左边还是右边的起作用,视不同规则符而定
规则符旁边必须有要被规则的字符或字符串

n+     - 匹配查找任何包含至少一个 n 的字符串。
n*     - 匹配查找任何包含零个或多个 n 的字符串。
n?     - 匹配查找任何包含零个或一个 n 的字符串。
n{X}   - 匹配查找包含 X 个 n 的序列的字符串。
n{X,}  - 匹配查找包含至少 X 个 n 的序列的字符串。
n{X,Y} - 匹配查找连续出现 X到Y次n 的序列的字符串。在逗号和两个数之间不能有空格
n$     - 匹配查找任何结尾为 n 的字符串。
^n     - 匹配查找任何开头为 n 的字符串。
?=n    - 匹配查找任何其后紧接指定字符串 n 的字符串。
?!n    - 匹配查找任何其后没有紧接指定字符串 n 的字符串。

以下符号有些代表一个字符范围,可单独出现在正则表达式中,代表查找符合其范围的字符或字符串,有些则同样需要和字符或字符串配合使用
正则里有特殊意义的英文字母不管大小写前面都要加  "\" 例如 \s \S \W 等。同样,如果正则表达式里想正常表达 + ,* ,? 等字符,在其前面也要加 "\" 例如 \+ , \* , \?

.        查找单个字符,除了换行和行结束符。
\w       查找单词字符。
\W       查找非单词字符。
\d       查找数字。
\D       查找非数字字符。
\s       查找空白字符。
\S       查找非空白字符。
\b       查找位于单词的开头或结尾的匹配。
\B       查找不处在单词的开头或结尾的匹配。
\0       查找 NUL 字符。
\n       查找换行符。
\f       查找换页符。
\r       查找回车符。
\t       查找制表符。
\v       查找垂直制表符。
\xxx     查找以八进制数 xxx 规定的字符。
\xdd     查找以十六进制数 dd 规定的字符。
\uxxxx   查找以十六进制数 xxxx 规定的 Unicode 字符。

var regExp = /\s+/    该正则表达式可以用于匹配目标对象中的一个或多个空格字符。
var regExp = /\d000/ 如果手中有一份复杂的财务报表,那么可以通过上述正则表达式轻而易举的查找到所有总额达千元的款项。

方括号用于查找在给定字符串中是否有符合方括号内指定某个范围内的字符

[abc]    匹配查找方括号之间的任何字符。abc为示例,这里符合abc中的一个就可
[^abc]   匹配查找任何不在方括号之间的字符。abc为示例,这里查找同时不符合abc中任何一个字符的
[0-9]    匹配查找任何从 0 至 9 的数字。
[a-z]    匹配查找任何从小写 a 到小写 z 的字符。
[A-Z]    匹配查找任何从大写 A 到大写 Z 的字符。
[A-z]    匹配查找任何从大写 A 到小写 z 的字符。
a|b|c    在多个不同的模式中任选一个进行匹配的话,可以使用管道符 "|"。abc为示例,正则表达式将会与目标对象中的 "a","b", 或 "c" 相匹配。

()       把字符串组合在一起。"()"符号包含的内容必须同时出现在目标对象中。

var regExp = /([a-z][A-Z][0-9])+/ 该正则表达式将会与任何由字母和数字组成的字符串,如 "aB0" 等相匹配。

在构造正则表达式之后,就可以象数学表达式一样来求值,也就是说,可以从左至右并按照一个优先级顺序来求值。
优先级如下:
1 \ 转义符

2 "()" , "(?:)" , "(?=)" , "[]" 圆括号和方括号

3 "*" , "+" , "?" , "{n}" , "{n,}" , "{n,m}" 限定符

4 "^" , "$" , "\任何元字符" 位置和顺序

5 "|" 或操作

js支持正则表达式的 String 对象的方法
search    检索与正则表达式相匹配的值。
match     找到一个或多个正则表达式的匹配。
replace   替换与正则表达式匹配的子串。
split     把字符串分割为字符串数组。
*/
</script>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: