JS-正则表达式之特殊符号和其他配合函数( \ | () [] - [^内容] i g 和search、match、replace)

一.正则表达式之特殊符号

正则表达式的特殊符号

1, \   可以表示正则表达式的规范,或者是转义符
       设定是不冲突的,符合哪个就执行哪个

2, |   表示逻辑或的关系
       表示两个规范,满足哪个都可以
       如果要表示多种内容,并且限定字符个数
       公式 : (内容1|内容2|内容3...){次数限定}

3, ()  ()中的内容作为一个整体,来执行,确保执行正确

4, [][]中设定的内容,任意满足其中一个就可以  abcd   []中的内容取得的true只能是取一个也就是单独的字符,其他的组合均为为false

5, -   表示在这个范围内的就可以 a-d  ,同[]也只能取一个

6, [^内容]  表示 非内容即取反  ,也只能取一个

必须写在 / / 之外  /正则表达式/i     /正则表达式/g
一般是与其他的函数配合使用
7, i  忽略大小写
7, g  全局匹配



逻辑或的判定
1,内容的判断,正常的判断
2,个数的判断,只要是包含个数就可以

内容,可以是数字,字母,下划线,字符只要是这3个就行,不能少,可以多

// 实际上是一种错误的语法形式
var  reg1 = /^\d{3}|\w{3}$/;

// 数字或者数字字符下划线,并且个数只能是三个
var  reg1 = /^(\d|\w){3}$/;

// 也可以
// var reg1 = /^\d{3}$|^\w{3}$/;

console.log( reg1.test( '123' ) );true
console.log( reg1.test( 'abc' ) );true
console.log( reg1.test( '1234' ) );false
console.log( reg1.test( 'abcd' ) );false
console.log( reg1.test( '1!1' ) );false
console.log( reg1.test( 'a&b' ) );false
console.log( reg1.test( 'ab' ) );false
console.log( reg1.test( '12' ) );false
console.log( reg1.test( '12&12' ) );false
console.log( reg1.test( 'ab&ab' ) );false

// 内容只能是 a b c d 4个单独的字符,多了不可以即组合的字符不可以
var reg2 = /^[abcd]$/;

console.log( reg2.test('a') );true
console.log( reg2.test('b') );true
console.log( reg2.test('c') );true
console.log( reg2.test('d') );true
console.log( reg2.test('ab') );false
console.log( reg2.test('abc') );false
console.log( reg2.test('abcd') );false
console.log( reg2.test('bc') );false
console.log( reg2.test('bcd') );false
console.log( reg2.test('cd') );false

// a-d之间的字符,只能是一个
var reg3 = /^[a-d]$/;

console.log( reg3.test('a') );true
console.log( reg3.test('b') );true
console.log( reg3.test('c') );true
console.log( reg3.test('d') );true
console.log( reg3.test('ab') );false
console.log( reg3.test('abc') );false
console.log( reg3.test('abcd') );false
console.log( reg3.test('bc') );false
console.log( reg3.test('bcd') );false
console.log( reg3.test('cd') );false

// 字符范围不再 a-d 之前,并且是一个字符
var reg4 = /^[^(a-d)]$/;

console.log( reg4.test('a') );false
console.log( reg4.test('b') );false
console.log( reg4.test('c') );false
console.log( reg4.test('d') );false
console.log( reg4.test('ab') );false
console.log( reg4.test('abc') );false
console.log( reg4.test('abcd') );false
console.log( reg4.test('bc') );false
console.log( reg4.test('bcd') );false
console.log( reg4.test('cd') );false
console.log( reg4.test('z') );true

二.正则表达式之其他配合函数

1, search()
字符串查找函数,在字符串中,查找是否有符合的内容,如果有,返回下标,没有返回-1
返回的是第一个符合内容的索引下标

indexOf() 也是查找,也返回索引下标,但是不支持正则表达式

var str1 = 'abcdefgab';
// 默认是区分大小写的
console.log( str1.search('ab') );0(表示下表)
console.log( str1.search('B') );-1(表示没有符合的内容)
// 正则表达式,不区分大小写
console.log( str1.search(/B/i) );1

console.log( str1.indexOf('b') );1
// indexOf() 不支持正则表达式
console.log( str1.indexOf(/B/i) );-1

2,  match()
找到符合规范的字符串,并且返回内容
默认只会执行一次,并且返回第一次符合规范的内容

var str2 = 'abcdefgabcdefg';

var arr1 = str2.match('ab');
// 正则表达式,匹配全局
var arr2 = str2.match(/ab/g);

// console.log(arr1);
// console.log(arr2);

3, replace()
字符串替换,默认只替换第一个符合的内容

var str3 = 'abcd曹abcd曹abcd曹abcd';

// 默认值替换第一个
// str3 = str3.replace('曹' , '*');

// 正则表达式,替换全局
str3 = str3.replace( /曹/g , '*');

console.log(str3);
发布了125 篇原创文章 · 获赞 4 · 访问量 2844

猜你喜欢

转载自blog.csdn.net/DcTbnk/article/details/105399781
今日推荐