JavaScript中的正则表达式

  • 概念
  • 用途
    • sql语句
    • windows查询
    • 日常使用
  • 对正则的分类
    • 标识符
    • 作用范围
    • 位置
    • 数量
    • 类型
    • 操作
  • 正则表达式字符
  • 实例
    • QQ号
    • 固定电话
    • 中文
    • 为空检测
    • 邮箱
概念
正则表达式:是对字符串操作的一种逻辑公式,用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。
  给定一个正则表达式和另一个字符串,我们可以达到如下的目的:1. 给定的字符串是否符合正则表达式的过滤逻辑(称作“匹配”);2. 可以通过正则表达式,从字符串中获取我们想要的特定部分。
  正则表达式的特点是:1. 灵活性、逻辑性和功能性非常的强;2. 可以迅速地用极简单的方式达到字符串的复杂控制。3. 对于刚接触的人来说有点难。

用途

那么正则表达式的用途是什么?

最常见的就是windows查询,例如想查询“廊坊师院12.jpg”,我们可以使用“廊坊师??2*.jpg”

SQLServer中也有类似功能,例如:

SELECT TOP 1000 [cityID]
,[proID]
,[cityName]
FROM[beidaqingniao].[dbo].[chengshi]
where cityID like '[^6-9]'

再者,我们也可以用正则表达式检测email、邮编等的格式。

对正则的分类

其实正则表达式的语法没分这么多类,但是为了更好的区分和理解其中的语法,故分成这些类别

标识符

JavaScript中,正则表达式的标识符是/ /;在VBScript中,通常采用的标识符是“

作用范围

如果不加范围,默认从开始位置查找第一个符合正则表达式的结果;加上gglobal/ /g),是从整个语句中获取结果;加上i(自认为是ignore,/ /i)可以忽略大小写。

优先级

自上而下优先级依次降低。

操作符

\

(), (?:), (?=), []

*, +, ?, {n}, {n,}, {n,m}

^, $, \anymetacharacter

|

位置

^x表示以x开始;x$表示以x结尾。

数量

.代表任意一个字符;\d66个数字;xnmn-mxxn,}n个以上xx?表示有或没有x+表示一个以上;*表示0个以及上;

类型

\d数字;\D非数字;\s表示space键;\表示非space键(其它类似,小写表示是,大写表示非)。

操作

[]字符集多选一,[a-z]az中间的一个字符(类似还有[A-Z],[0-9]),[^XXX]表示非[]中的字符(注意与位置中的^分开),x|y表示选择xy

正则表达式字符

普通字符:常用的包括所有的大写和小写字母字符,所有数字,所有标点符号以及一些符号。

特殊字符

特殊字符

说明

$

匹配输入字符串的结尾位置。如果设置了RegExp对象的Multiline属性,则 $ 也匹配 '\n' '\r'。要匹配 $字符本身,请使用 \$

( )

标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。要匹配这些字符,请使用 \( \)

*

匹配前面的子表达式零次或多次。要匹配 *字符,请使用 \*

+

匹配前面的子表达式一次或多次。要匹配 +字符,请使用 \+

.

匹配除换行符 \n之外的任何单字符。要匹配 .,请使用 \

[

标记一个中括号表达式的开始。要匹配 [,请使用 \[

?

匹配前面的子表达式零次或一次,或指明一个非贪婪限定符。要匹配 ?字符,请使用 \?

\

将下一个字符标记为或特殊字符、或原义字符、或后向引用、或八进制转义符。例如, 'n'匹配字符 'n''\n'匹配换行符。序列 '\\'匹配 "\",而 '\('则匹配 "("

^

匹配输入字符串的开始位置,除非在方括号表达式中使用,此时它表示不接受该字符集合。要匹配 ^字符本身,请使用 \^

{

标记限定符表达式的开始。要匹配 {,请使用 \{

|

指明两项之间的一个选择。要匹配 |,请使用 \|

非打印字符

字符

含义

\cx

匹配由x指明的控制字符。例如, \cM匹配一个 Control-M或回车符。x的值必须为 A-Z a-z之一。否则,将 c视为一个原义的 'c'字符。

\f

匹配一个换页符。等价于 \x0c \cL

\n

匹配一个换行符。等价于 \x0a \cJ

\r

匹配一个回车符。等价于 \x0d \cM

\s

匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]

\S

匹配任何非空白字符。等价于 [^ \f\n\r\t\v]

\t

匹配一个制表符。等价于 \x09 \cI

\v

匹配一个垂直制表符。等价于 \x0b \cK

限定符

字符

描述

*

匹配前面的子表达式零次或多次。例如,zo*能匹配 "z"以及 "zoo" *等价于{0,}

+

匹配前面的子表达式一次或多次。例如,'zo+'能匹配 "zo"以及 "zoo",但不能匹配 "z"+等价于 {1,}

?

匹配前面的子表达式零次或一次。例如,"do(es)?"可以匹配 "do" "does"中的"do"?等价于 {0,1}

{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}

mn均为非负整数,其中n<=m。最少匹配n次且最多匹配m次。刘, "o{1,3}" 将匹配 "fooooood"中的前三个 o'o{0,1}'等价于 'o?'。请注意在逗号和两个数之间不能有空格。

定位符

字符

描述

^

匹配输入字符串的开始位置。如果设置了RegExp对象的Multiline属性,^也匹配 '\n' '\r'之后的位置。

$

匹配输入字符串的结束位置。如果设置了RegExp对象的Multiline属性,$也匹配 '\n' '\r'之前的位置。

\b

匹配一个单词边界,也就是指单词和空格间的位置。

\B

匹配非单词边界。

实例

QQ号:/\d{5,}/ ,表示由五位以上数字组成。

固定电话:/(\d{3}|\d{4})-\d{7}/g,表示区号为43位数字,号码由7位数字组成。

中文检测:[\u4e00-\u9f5a]。代表了符合汉字GB18030规范的unicode字符集。

为空检测:/^ +$/g。表示首字符、中间和尾字符都是“ ”。

email/^(\w)+(\.\w+)*@(\w)+((\.\w+)+)$/或者/^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值