JavaScript正则表达式

JavaScript 李日平

正则表达式

正则表达式,又称规则表达式、计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本,许多程序设计语言都支持利用正则表达式进行字符串操作。

正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑

目的

给定一个正则表达式和另一个字符串,我们可以达到如下的目的:

1. 给定的字符串是否符合正则表达式的过滤逻辑(称作匹配):

2. 可以通过正则表达式,从字符串中获取我们想要的特定部分。


特点

正则表达式的特点是:

1. 灵活性、逻辑性和功能性非常强;

2. 可以迅速地用极简单的方式达到字符串的复杂控制

3. 简洁的代码;

4. 严谨的验证文本框中的内容

5. 正则表达式是一个描述字符模式的对象


常用符号:

1.  /.../代表一个模式的开始和结束

2.  ^匹配字符串的开始

3.  $匹配字符串的结束;

4.  \s任何空白字符

5.  \S任何非空白字符

6.  \d匹配一个数字字符

7.  \D除了数字以外任何字符

8.  \w匹配一个数字,下划线或者字母字符

9.  \W匹配一个非单字字符

10.  除了换行符号之外任意字符


重复字符:

1.  {n}匹配前一项n

2.  {n,}匹配前一项n次或者多次

3.  {n,m}匹配前一项n次,但不能超过m

4.  * 匹配前一项0次或者多次

5.  + 匹配前一项1次或者多次

6.  ? 匹配前一项0次或者1


验证对象

1.  RegExp对象的方法

exec    检索字符中是正则表达式的区配,返回找到的值,并确定其位置

test      检索字符串中指定的值,返回truefalse 

2.  RegExp对象的属性

global    RegExp对象是否具有标志g

ignoreCase    RegExp对象是否具有标志i

multiline     RegExp对象是否具有标志m

3.  String对象的方法

match 找到一个或多个正则表达式的匹配

search 检索与正则表达式相匹配的值

replace 替换与正则表达式匹配的字符串

split 把字符串分割为字符串数组


常用的正则表达式

手机号码:^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}$

电话号码("0XX-XXXXXXX"、"0XX-XXXXXXXX"、"0XXX-XXXXXXX"、"0XXX-XXXXXXXX":    0\d{2,3}-\d{7,8}

身份证号(15位、18位数字):^\d{15}|\d{18}$

Email地址: /^\w{1,}@\w{1,}(\.[a-z]{2,3}){1,2}$/

中文、英文、数字包括下划线:^[\u4E00-\u9FA5A-Za-z0-9_]+$

用户名 (字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$


还能输出{{restrictNumber}}个字符  
  • {{reply.author}}

    {{CommonUtil.formateDate(reply.ac_CommentDate).shortTime}}
  • 回复了{{Comments.author}} :