脚本宝典收集整理的这篇文章主要介绍了javascript基础——正则表达式,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
1.构造函数
js中主要有两种方式创建正则表达式
- 使用表达式字面量:
VAR regex = /abc/g;
- 使用构造函数
var regex = new Regexp('abc','g')
//等价于
var regex = /abc/g;
而在新增的ES6中允许第二个参数添加修饰符而且返回的正则表达式中会忽略原有的修饰符,只使用新指定的修饰符
var regex = new RegExp(/abc/ig, 'i')
//等价于
var regex = /abc/i;
2.字符串正则方法
一共有五个字符串方法:
seArch()
replace()
splIT()
match()
exec()
- search
search() 方法 用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串,并返回子串的起始位置。
var str = "abcdefg";
var n = str.search(/c/i); //2
- replace
replace() 方法 用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。
var str = "abcdefg";
var n = str.replace(/cde/i,'hij'); // "abhijfg"
- split
split() 用于分割字符串,返回被拆分的数组。
var str = "a,b,c,d,e,f,g";
var n = str.split(/,/i); // ["a", "b", "c", "d", "e", "f", "g"]
- match
match() 返回被匹配的子串。
var str = "abcdefgabc";
var n = str.match(/abc/g); //["abc", "abc"]
//这里使用 g 表示global 即全局匹配 若使用 i 则返回 ["abc"]
- exec
exec() 方法在一个指定字符串中执行一个搜索匹配。返回一个结果数组或 null。
/e/.exec("abcde"); //["e"]
3.修饰符
修饰符
作用
i
执行对大小写不敏感的匹配
g
执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)
m
执行多行匹配
u
ES6新增修饰符 含义为“Unicode 模式”,用来正确处理大于uFFFF的 Unicode 字符
y
ES6新增修饰符 也是全局匹配,后一次匹配都从上一次匹配成功的下一个位置开始。不同之处在于,g修饰符只要剩余位置中存在匹配就可,而y修饰符确保匹配必须从剩余的第一个位置开始,这也就是“粘连”的涵义
4.正则表达式转义字符
/ [ ] () { } ? + * | . ^ $
//以上字符在正则表达式中出现 需要使用来进行转义
//如 + 表示匹配+号这个字符
5.正则表达式的特殊字符
因为特殊字符实在是太多了,列一些常用的 其他可以去mdn官网查阅
表达式
描述
abc
查找方括号之间的任何字符
{2,4}
查找2次到4次贪婪匹配,即尽可能多的匹配
[^abc]
查找任何不在方括号之间的字符
[0-9]
查找任何从 0 至 9 的数字
[a-z]
查找任何从小写 a 到小写 z 的字符
[A-Z]
查找任何从大写 A 到大写 Z 的字符
[a-Z]
查找所有英文字符
d
查找所有数字等同 [0-9]
D
排除任何数字等同 [^0-9]
w
下划线+任何单词等同[a-zA-Z0-9]
W
查找任何从小写 a 到小写 z 的字符
s
任何空白字符
S
排除空白字符
^
匹配行首
$
匹配行尾
*
匹配0次或多次
+
匹配一次或多次{1,}
?
匹配一次或0次{0,1}
.
匹配所有字符
6.这里是一些栗子
(0d{2,3})?[1-9]d{7}(-d{1,5})
// 固定电话正则匹配 如 010-82612222-311
// 区号 电话号 分机号
[1-9]d{4-10}
// QQ号匹配五位到十位
S*@S*.S*
//匹配一个简易的邮箱
因为正则里的东西太多了,每次查文档都很麻烦,参照看网上一些博客,自己写了一个总结,错误之处还请指出,谢谢。
以上是脚本宝典为你收集整理的javascript基础——正则表达式全部内容,希望文章能够帮你解决javascript基础——正则表达式所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。