前端正则表达式
在前端的开发中很少人会用到正则表达式(RegExp)去写函数,其实正则表达式的效率会比一般的逻辑代码要快很多,但是它也有一个特点就是不容易掌握。
正则引擎主要可以分为两大类:一种是DFA,一种是NFA。
一个正常的正则表达式的语法应该是
1
|
/正则表达式主体/修饰符 |
在字符串方面RegExp有两个方法:
search() 用于检索字符串中指定的子字符串,或检索与RegExp相匹配的子字符串并返回子串的起始2位置。
replace() 用于字符串中一些字符替换另一些字符,或替换一个与正则表达式相匹配的子串。
match() 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。
test() 方法用于检测一个字符串是否匹配某个模式,如果字符串中含有匹配的文本,则返回 true,否则返回 false。
exec() 方法用于检索字符串中的正则表达式的匹配。该函数返回一个数组,其中存放匹配的结果。如果未找到匹配,则返回值为 null。
创建方式局我了解的话有两种:
1、
1
|
var newregexp = new RegExp( "//此处写入表达式的式子" , "此处写入g或i或gi或m,主要写入是是否全局匹配" ); |
2、
1
|
var newregexp = / 表达式 /gi |
一些常见的标识符:
元字符:
1
2
3
4
|
\d 查找数字。 \s 查找空白字符。 \b 匹配单词边界。 \uxxxx 查找以十六进制数 xxxx 规定的 Unicode 字符。 |
表达式:
方括号用于查找某个范围内的字符:
1
2
3
|
[abc] 查找方括号之间的任何字符。 [0-9] 查找任何从 0 至 9 的数字。 (x|y) 查找任何以 | 分隔的选项。 |
量词:
1
2
3
|
n+ 匹配任何包含至少一个 n 的字符串。 n* 匹配任何包含零个或多个 n 的字符串。 n? 匹配任何包含零个或一个 n 的字符串。 |
以下部分都是引用的:
来源:https://www.cnblogs.com/jay3352/p/5784050.html
正则表达式的() [] {}有不同的意思。
() 是为了提取匹配的字符串。表达式中有几个()就有几个相应的匹配字符串。
(\s*)表示连续空格的字符串。
[]是定义匹配的字符范围。比如 [a-zA-Z0-9] 表示相应位置的字符要匹配英文字符和数字。[\s*]表示空格或者*号。
{}一般用来表示匹配的长度,比如 \s{3} 表示匹配三个空格,\s[1,3]表示匹配一到三个空格。
(0-9) 匹配 '0-9′ 本身。 [0-9]* 匹配数字(注意后面有 *,可以为空)[0-9]+ 匹配数字(注意后面有 +,不可以为空){1-9} 写法错误。
[0-9]{0,9} 表示长度为 0 到 9 的数字字符串。
下面记录了一些常用的正则表达式:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
用户名 /^[a-z0-9_-]{3,16}$/ 密码 /^[a-z0-9_-]{6,18}$/ acas12_aaa@sina.com.cn 电子邮箱 /^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/ /^[a-z\d]+(\.[a-z\d]+)*@([\da-z](-[\da-z])?)+(\.{1,2}[a-z]+)+$/ URL /^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/ IP 地址 /((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)/ /^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/ HTML 标签 /^<([a-z]+)([^<]+)*(?:>(.*)<\/\1>|\s+\/>)$/ 删除代码\\注释 (?<!http:|\S) //.*$ Unicode编码中的汉字范围 /^[\u2E80-\u9FFF]+$/ “^\d+$ " //非负整数(正整数 + 0) " ^[0-9]*[1-9][0-9]*$ " //正整数 " ^((-\d+)|(0+))$ " //非正整数(负整数 + 0) " ^-[0-9]*[1-9][0-9]*$ " //负整数 " ^-?\\d+$ " //整数 " ^\\d+(\\.\\d+)?$ " //非负浮点数(正浮点数 + 0) " ^(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*))$ " //正浮点数 " ^((-\\d+(\\.\\d+)?)|(0+(\\.0+)?))$ " //非正浮点数(负浮点数 + 0) " ^(-(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*)))$ " //负浮点数 " ^(-?\\d+)(\\.\\d+)?$ " //浮点数 " ^[A-Za-z]+$ " //由26个英文字母组成的字符串 " ^[A-Z]+$ " //由26个英文字母的大写组成的字符串 " ^[a-z]+$ " //由26个英文字母的小写组成的字符串 " ^[A-Za-z0-9]+$ " //由数字和26个英文字母组成的字符串 " ^\\w+$ " //由数字、26个英文字母或者下划线组成的字符串 " ^[\\w-]+(\\.[\\w-]+)*@[\\w-]+(\\.[\\w-]+)+$ " //email地址 " ^[a-zA-z]+: //(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?$" //url "^[A-Za-z0-9_]*$"。 |