String函数提供的正则相关的函数(indexOf/search/match/replace)
一.查找敏感词:用正则查找一句话中包含的敏感词,共四种情况:
1. **只查找一个固定的敏感词出现的位置:**
a. ```var i=str.indexOf("敏感词")```
b. 含义:在str中查找第一个敏感词出现的下标位置
c. 返回值:如果找到返回敏感词第一个字在字符串中的下标位置,没找到则返回-1
2. **用正则查找多种敏感词出现的位置:**
a. ```var i=str.search(/正则表达式/)```
b. 含义:在字符串str中查找第一个符合正则要求的敏感词出现的位置
c. 返回值:同indexOf一样
3. **查找敏感词的内容:2种:**
1. **只查找第一个敏感词的内容和位置:**
a. ```var arr=str.match(/正则表达式/)```
b. 含义:在字符串str种查找第一个符合正则要求的敏感词的内容和位置
c. 返回值:2种:
1. 如果找到,返回一个数组,包含两个元素arr[0:"敏感词的内容","index":敏感词下标位置].
2. 如果没有找到,返回null
2. **查找所有敏感词的内容:**
1. ```var arr=str.match(/正则表达式/g)```
2. g:global,查找全部的敏感词
3. 返回值:
1. 如果找到敏感词,则返回一个数组,只包含所有敏感词的内容,不再包含敏感词的位置
2. 如果找不到敏感词,返回null
4. **即查找每个关键词的内容,又查找每个关键词的位置:**
1. RegExp类型提供了一个reg.exec()函数
二.替换敏感词:将找到的额敏感词替换为新内容(2种)
1. **简单替换:将所有敏感词都替换为统一的新值**
a. ```var 变量=str.replace(/正则表达式/ig,新值)```
b. 含义:替换字符串str中所有符合正则要求的敏感词为统一的新值
c. 强调:因为所有字符串类型都是不可变类型,所以,replace无权修改原字符
2. **高级替换:根据每次找到的敏感词不同,动态替换成不同的新值**
a. ```var 变量=str.replace(/正则表达式/ig,function(形参{函数体;})```
b. 原理:回调函数的学习
3. **衍生操作:删除敏感词:其实就是将敏感词替换为空字符串**
三.切割字符串
1. **简单切割:切割符是固定的**
a. ```var arr=str.split("切割符")```
b. 按照字符串str种指定的切割符,将字符串切割为多段子字符串
c. 返回值:包含切割后的多段子字符串的数组
d. 切割完的结果中,不包含切割符
2. **复杂切割:切割符是不固定的,但是却能找到规律**
a. ```var arr=str.split(/正则/);
b. 含义:按照str中所有符合正则要求的切割符将字符串切割为多段子字符串
c. split中不用加g,也能自动找到所有符合条件的切割符
转载请注明原文地址:https://ipadbbs.8miu.com/read-41763.html