正则表达式

正则表达式: regular expression 也叫规则表达式, 用于字符串的检索和判断。
使用正则来判断一个字符串是否符合一定规则或是否包含一定规则的字符。
正则匹配的字符串数据来源主要有三种:
1,用户输入  2,数据请求  3,本地读取
正则表达式在js中是以对象的形式存在的,他有两种创建方法:
1,字面量创建  var myreg=/a/
2,   关键字创建  var myreg=new RegExp(/a/)
 
正则表达式默认是区分大小写字母的, 添加i可以不区分大小写
正则最后添加字母g, 表示全局匹配, 可以得到所有符合规则的结果
 
正则表达式的方法:
test()  函数是指用正则去判断字符串中是否含有该指定字符。返回true  or  flase
如:myreg.test(str)
exec() 函数指用正则去匹配一个字符串, 查找一个字符串中符合正则的字符,并返回。
如:myreg.exec(str)          exec不支持全局查找
 
 
// 昵称正则: 只能是汉字,数字,字母,下划线,横杠,长度[4-8]
            var myReg12 = /^(\w|-|[\u4e00-\u9fa5]){4,8}$/
            result  = myReg12.test(string)
            console.log(12, result)
 
 
字符串的方法:
str.match(/a/);    正则去匹配一个字符串, 查找一个字符串中符合正则的字符,并返回。
str.replace('a','b')  
var myReg = /操|卧 *槽|傻 *逼|马化腾|fuck|SB|约炮/ig     // 匹配敏感字符
            result = string.replace(myReg14, "*")
            // document.writeln(result)

            // replace的第二个参数可以写成回调函数
            result = string.replace(myReg, function(item){
                console.log(item)          // 参数item是匹配的结果
                if(item == "fuck") return "f**k"
                // 返回值是要替换的结果
                return item.replace(/[^ ]/g, "*")       // 非空的字符
            })
            document.writeln(result)
  
str.split(/1/)        //按1分割
string = 'a-b_c=d*e.f'
result = string.split(/[^-_=\*\.]/)
console.log(result)
 
关于正则基本语法:

^ 匹配一个字符串的开头(是否以某个字符开头), 如果放在中括号中表示排除某些字符
$ 匹配一个字符串的结束(是否以某个字符结束)
. 匹配任意一位字符
* 匹配它前边字符任意长度
+ 匹配它前边字符至少一个, 长度>=1
? 匹配前边的字符0个或1个(可有可无)
\d 匹配一位数字
{n} 匹配n个它前边的字符
{n,} 匹配至少n个它前边的字符
{n,m} 匹配至少n个,最多m个它前边的字符
[0-9] 匹配一位数字 等价于 \d
[a-z] 匹配任意一个小写字母
[A-Z] 匹配任意一位大写字母
\w 匹配任意数字,字母或下划线 等价于 [0-9a-zA-Z_]
[0123456789] 匹配一位或0位数字
[abc] 匹配a或b或c或没有
a|b|c 匹配a或b或c其中之一 可以是单词
\ 转义, 把正则语法转译成普通字符 比如 \* 匹配*这个字符

 
 
 
posted @ 2022-03-10 19:17  俺是前端小菜  阅读(40)  评论(0编辑  收藏  举报