正则表达式不是单纯的js范畴,所以标题这样取比较好一点,正则表达式运用于检测字符串格式,他所表示的是一种字符串格式,根据他索引到字符串中相应位置进行想要的操作,前面主要是小编自身为了记忆做的比较繁琐的笔记,后面会结合常见案例来说。
一、定义与方法
转义字符 \ :
转义字符 \ 将后面所跟的内容转为文本
通过它可以实现多行文本
var str = "我是\
多行文本"
定义:
1. var reg = / / ; //其中的每一位我们可以默认它带有括号,当我们带括号写时就可以为这一位添加更多的条件了
2. var reg =new RegExp("正则表达式" , 索引模式) ;
有联系的一些方法:
二、索引模式、元字符、量词
初始状态下正则匹配完全按照内容匹配而且次数为1次,实际上格式不可能什么都是字符串索引,对应格式就有对应代表规则
三种索引模式:
i:忽略大小写
g:全局索引
m:多行匹配 //当存在换行时正则必须加上m才能匹配多行
元字符:
大写是小写的非
我们以中括号代表条件
\w:[0-9||A-z]
\d:[0-9]
\s:空白字符都是要在字符串里面有的
\b:单词边界
$:以什么结尾
全局:\任意元字符\对应大写
量词:
代表数量的词,每次匹配几个,
贪婪匹配原则能多就多 0时一般匹配空 n+?非贪婪匹配
n+ //{1,}
n* //{0,}
案例(注意我们在使用字符串相关方法时不是对他自身进行修改)
还有几个点这边也是可意会不可言传啊痛苦咱看几个案例:
1.-开头改为小驼峰
// -开头形式 小驼峰
var str = "get-element-by-tag-name";
//getElementByTagName
var reg = /-(\w)/g;
console.log(str.replace(reg , function($,$1){
return $1.toUpperCase();
}));
replace方法第二个方法参数中本身$代表第几个括号包裹内容因为是从0开始,我们需要的是(\w)所以为$1
这种方式也可以实现将两个名字换位,这是另一种格式,侧重于$的代表
2.字符串去重
//字符串去重
var reg = /(\w)\1*/g;
var str = "bbaacc";
console.log(str.replace(reg,"$1"));
这边主要是强调一下\1的用法,\1在正则中代表与上一位相同
3.将一串数字以英文格式输出(三位一.)
var str = "100000000";
var reg = /(?=(\B)(\d{3})+$)/g;
console.log(str.replace(reg,"."));
?=为反向索引,这边正则表示以1~多个三个数字结尾的空。