JS正则表达式:
一、常见字符串基础:
(1)search 查找
查找后返回该字符串所在的数组号(注意:数组号是从0开始的)
(2)substring 获取子字符串
substring(起始值得字符串号,结束字符串号(半开半闭区间,不包括第二个参数的那一位)
(3)charAt 获取某个字符
获取某一位的字符串(注意:字符串的编号是从0开始的)
(4)split 分割字符串,获得数组
Split 用于切割字符串,参数即为要用来切割的标准
二、找出字符串中的所有的数字:
(1)利用for循环方式实现
(2)利用正则表达式实现
三、正则表达式:
1、语法:
(1)使用构造函数创建一个正则表达式的对象
var 变量 = new RegExp(‘正则表达式’,‘匹配模式’);
(2)使用字面量创建正则表达式:
var 变量 = /正则表达式/匹配模式;
reg =/abcd/i;// 使用字面量创建正则表达式
reg1=new RegExp('abcd','i'); //使用构造函数创建正则表达式
(3)使用typeof验证正则表达式,是一个对象,会返回object;
(4)var reg = new RegExp(“a”),这个正则表达式可以来检查一个字符串中是否含有a;
(5)在构造函数中可以传递一个匹配模式作为第二个参数,
可以用
i:忽略大小写
g:全局匹配模式
2、方法:
1)test()
-使用该方法可以用来检查一个字符串是否是否符合正则表达式的规则,
如果符合返回true,否则返回false
// 使用构造函数创建正则表达式
var reg = new RegExp('a', 'i'); //忽略大小写找'a'
console.log(reg.test('a')); // 返回true
console.log(reg.test('ajh')); //返回true
console.log(reg.test('hbhvgjh')); // 返回false
2)使用’|'表示或者的意思,[ ]也是或者的意思
// 例子:表示字符串含有a或者b或者c
reg=/a|b|c/;
reg1=/[abc]/;
// reg和reg1是完全等价的关系
console.log(reg.test('ah')); // true
console.log(reg.test('ahdsb')); //true
console.log(reg.test('fhfjk')); //false
3)量词:
-通过量词来设置一个内容出现的次数
-{n}正好出现的n次
**/[ab]/: 表示a|b;
/[A-Z]/:表示任意大写字母
/[a-z]/:表示任意小写字母
/[A-z]/:表示任意字母
/a{3}/:表示出现aaa的字符串
**
4)search()
可以搜索字符串中是否含有指定的内容;
如果搜索到指定的内容,则会返回第一次出现的索引,如果没有就返回-1;
它也可以接受一个正则表达式作为参数,然后会根据正则表达式去检索字符串。
(1)强大的字符串匹配工具
(2)RegExp对象
JS风格----new RegExp("a","i")
perl风格----/a/I
(3)大小写敏感!!!
var re=new RegExp('a','i');//JS 风格
var re=/a/i;//perl风格【i(ignore)是忽略大小写】
var str='bdcfA';
alert(str.search(re));
5)转义
\n 换行
\d 数字
\g 全局(global,找到全部)
- 量词(若干)
【找出第一个数字的位置】=>用正则的转义字符很方便简洁
var str=‘fhdb344 58 45 jgj';
var re=/\d/;
alert(str.search(re));
6)match()
1、可以根据正则表达式,从一个字符串中符合条件的内容提取出来;
2、默认情况下match()只会找到第一个符合要求的内容就停止检索;
3、不过,我们可以设置为全局匹配模式,这样子就会检索到所有的内容;
4、也可以为一个正则表达式设置多个匹配模式,且顺序无所谓;
5、match()会将匹配到的内容封装到一个数组中返回,即使只查询到一个结果,那就返回一个只有一个元素的数组。
str ='1h3n4A2';
console.log(str.match(/[A-z]/));//['h']
console.log(str.match(/[A-Z]/g)); // ['h','n']
console.log(str.match(/[A-Z]/ig));//['h','n','A']
console.log(str.match(/[A-z]/g));//['h','n','A']
// 第三和第四等价
7)replace()
1、可以将字符串中指定的内容替换为新的内容
2、参数:
第一参数是被替换的内容;
第二个参数是新的内容。
3、默认只会替换第一个
【只有配合正则才会比较好使用】
敏感词过滤 , 将‘a’替换成‘0’
var str=’avd 4afvf';
var re=/a/g;
alert(str.replace(re,'0');