正则表达式-js
1.概念
正则表达式是对 字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。 给定一个正则表达式和另一个字符串,我们可以达到如下的目的: (1). 给定的字符串是否符合正则表达式的过滤逻辑(称作“匹配”);( 2). 可以通过正则表达式,从字符串中获取我们想要的特定部分。 正则表达式的特点是: (1). 灵活性、逻辑性和功能性非常的强;( 2). 可以迅速地用极简单的方式达到字符串的复杂控制。( 3.) 对于刚接触的人来说,比较晦涩难懂。 由于正则表达式主要 应用对象是文本,因此它在各种 文本编辑器场合都有应用,小到著名编辑器EditPlus,大到Microsoft Word、Visual Studio等大型编辑器,都可以使用正则表达式来处理文本内容。
2.理解
正则表达式就是一个模板一种规则,我们需要建立一种规则,由我们自己定义。操作对象是字符串。具有检索、替换的功能。首先我们得建立我们的正则,然后去用我们的正则去过滤字符串。
3.javascript
检查字符串中是否含有某个字符,如“a”(不管是几个都看作一个整体,严格区分大小写)
var reg=new RegExp("a"); var result=reg.test("c@ab"); console.log(result);
忽略大小写的写法
var reg=new RegExp("A","i"); var result=reg.test("bc@a"); console.log(result);
另一种写法
var reg=/a/i; //reg=/a/; var result=reg.test("bc@a"); console.log(result);
或的过滤
var reg=/a|b/; var result=reg.test("bc@a"); console.log(result);
或的另一种写法
var reg=/[ab]/; var result=reg.test("c@a"); console.log(result);
//表示或的一种范围。[A-Z]任意大写字母都可以;[a-z]表示任意小写字母都可以;[A-z]表示任意字母都可以;[0-9]
//reg=/[a-z]/;
// var result=reg.test("c@a");
// console.log(result);
检查字符串是否有abc或aec或adc
var reg=/abc|adc|aec/; var result=reg.test("abc"); console.log(result);
var reg=/a[bde]c/; var result=reg.test("abc"); console.log(result);
除了##都行的表达方法(找de之外的存在即可)
var reg=/[^de]/; var result=reg.test("dcfv"); console.log(result);
4.字符串和正则的使用
var str="3f445g55h"; var result=str.split(/[a-z]/); console.log(result);
var str="3f445g55h"; var result=str.search(/445/); console.log(result);
var str="3f445g55h"; var result=str.match(/[a-z]/); console.log(result);
5.全局表达式
str="ssd234g4"; result=str.match(/[A-z]/g); console.log(result);
str="ssd234gB4"; result=str.replace(/[a-z]/g,"@"); console.log(result);
6.多种匹配模式(顺序我所谓)
str="ssd234gB4"; result=str.match(/[a-z]/gi); console.log(result);
7.量词
reg=/a{2}/; result=reg.test("abaa"); console.log(result);
reg=/ab{2}/; //只对b起作用 result=reg.test("abba"); console.log(result);
reg=/ab{1,2}c/; //b出现一次或者两次都可以 result=reg.test("abbc"); console.log(result);
reg=/ab{2,}c/; //2次以上 result=reg.test("abbbc"); console.log(result);
reg=/^a$/; //既是以a开头,又以当下a结尾,所以只能是一个a result=reg.test("aaa"); console.log(result);
8.点
reg=/\./; result=reg.test("ab"); console.log(result);
9.斜杠(都要用转义字符)(在构造函数里需要使用两个斜杠,因为在构造函数里斜杠只是一个字符)
reg=/\\/; result=reg.test("a\\b"); console.log(result);
10.去除字符串开头结尾的空格
str=" a dddd "; str=str.replace(/^\s*|\s*$/g,""); console.log(str);
11.可以网上搜索常用的正则表达式,然后按照自己的要求更改即可。