正则表达式
regular expression
包含 正常字符、元字符。用于匹配对象
如何创建正则表达式
1.构造函数:new RegExp(‘xx’)
2.字面量:/xx/
检测匹配的方法
正则表达式.test(字符串)
1.验证字符串的格式
2.检测字符串中是否包含需要的信息
常用元字符
、、、
1>基本元字符
. 除了换行的任意字符
[ ] 出现在括号中的任意一个字符
()提高优先级或分组
| 表示或者 优先级最低
2>限定元字符
* 跟在前面的字符出现0次或多次
+ 跟在前面的字符出现1次或多次
? 跟在前面的字符出现1次或多次
{x} 前面的字符出现x次
{x,} 前面的字符出现至少x次
{x,m} 前面的字符出现x 到 m 次
3>首尾元字符
^x 放在正则一开始,表示必须以x开头
[^x] 表示否定,不能是x
x放在正则结尾,表示必须以x结尾在替换中使用数字 表示组引用
4>简写元字符
\d 数字 digit
\D 非数字
\s 空白(空格、换行…….) space
\S 非空白 小技巧:[\s\S] 表示任意一个字符
\w 文字:数字、字母、下划线 word
\W 非文字
、、、
常用方法
1.正则.test(str) return boolean
*判断是否符合正则
2.正则 . exec(str) return Array
*将符合正则的字符串截取出来,存储到数组中,每次取一个
3.字符串 . replace(正则 , 替换字符 | 函数)
*将字符串中符合正则表达式的内容替换成指定字符
案例
写一个正则表达式, 匹配用户输入的数字. 要求是绝对的数字格式. 包含正数, 负数, 0, 小数等.
*要求严格匹配,所以首尾加^和$
* 0直接匹配
* 正数+?\d+ (\为转译)
* 负数-\d+
* 小数\d+.\d+ | +?\d+.\d+ | -\d+.\d+结合起来:^(0|+?\d+|-\d+| +?\d+.\d+|-\d+.\d+)$
2.截取一个字符串中的所有数字
、、、
var s = ‘abcd34efgabcde34fgabc54defga5cdefga4bcdef43gabc6defga43bcdefgab23cdefg’;
var r = /\d+/g; /g表示全局/
var m;
var arr = [ ];
while(m = r.exec(s)){
arr.push(m[0]);
}
、、、
3.写一个字符串, 里面包含数字, 要求将所有的数字替换成 星号
、、、
var s = ‘abcdefgab321cde43fgabcdef43gabcdefg43abcdefga432bcdefgabc658defg78hijklmnh7ikhijklmnlmnhikjhijk’;var r = /\d+/g;
var str = s.replace(r,’*’);
console.log(str);
、、、