正则表达式总结

最近一直被正则困扰,四处查找,现总结如下

var patt1 = newRegExp("hello");

var patt2 = /world/ ;

test方法

test() 方法检索字符串中的指定值。返回值是 true 或 false。

var pat = /my/;

varstr = "this is my code...";

console.log(pat.test(str)); // true

exec方法

exec() 方法检索字符串中的指定值。返回值是被找到的值。如果没有发现匹配,则返回 null。

var pat = /hello/;

console.log(pat.exec("oh hello world")); //返还hello

正则表达式类型

/pattern/attributes

参数 attributes 是一个可选的字符串,常用属性 "g"、"i" ,分别用于指定全局匹配、区分大小写的匹配。

//不区分大小写

varstr = "Visit Hunger";

var patt1 = /hunger/i;

console.log(str.match(patt1));  //全局匹配

varstr="hello hunger valley! I am hunger"var patt1=/hunger/gconsole.log(str.match(patt1));  //不区分大小写,全局匹配varstr="hello Hunger valley! I am hunger"var patt1=/hunger/giconsole.log(str.match(patt1));

字符串正则

1. search

字符串查找

varstr="Visit W3School!";

console.log(str.search(/w3school/)); //-1console.log(str.serach(/w3school/i)); // 6

2. match

字符串匹配

varstr="1 plus 2 equal 33";

console.log(str.match(/\d+/));   //[1]

console.log(str.match(/\d+/g));  //[1,2,33]

3. replace

字符串替换

varstr="Hello JI! oh I am hunger"

console.log(str.replace(/Hunger/"valley")); console.log(str.replace(/hunger/ig"hunger"));

4. split

字符串分割

varstr = "Hello Hunger   , oh I am Hunger";

str.split("");

str.split(/\s+/);

正则写法

  1. [abc] 查找方括的任何字符

varstr="Is this all there is?";

var patt1=/[a-h]/g;

console.log(str.match(patt1));

  1. [^abc] 查找任何不在方括的字符

varstr="hello jikexueyuan!";

var patt1=/[^jike]/g;

console.log(str.match(patt1));

  1. [0-9] 查找任何 0  9 
  2. [a-z] 查找任何 a 到小 z 的字符
  3. [A-Z] 查找任何 A 到大 Z 的字符
  4. [A-z] 查找任何 A 到小 z 的字符
  5. [adgk] 查找定集合的任何字符
  6. [^adgk] 查找定集合外的任何字符
  7. red|blue|green查找任何指定的选项

varstr="hello hunger! How are you?";

var patt1=/hello|you/gc

onsole.log(str.match(patt1));

  1. 查找单个字符,除了行和行束符

varstr="That's hot!";

var patt1=/h.t/g;

document.write(str.match(patt1));

  1. \w查找单词字符(字母、字、下划线)

varstr="Give 100%!";

var patt1=/\w/g;

document.write(str.match(patt1));

  1. \W 查找非单词字符

varstr="Give 100%!";  var patt1=/\W/gdocument.write(str.match(patt1));

  1. \d查找

varstr="Give 100%!"

var patt1=/\d/g;

document.write(str.match(patt1));

  1. \D 查找非字字符

varstr="Give 100%!";  var patt1=/\D/gdocument.write(str.match(patt1));

  1. \s查找空白字符(空格、tab行、回)

varstr="Is this all there is?";

var patt1=/\s/gdocument.write(str.match(patt1));

  1. \S 查找非空白字符

varstr="Is this all there is?";  var patt1=/\S/gdocument.write(str.match(patt1));

  1. \b匹配单词边

/\bm/ 匹配"moon"中的'm';

/oo\b/ 不匹配"moon"中的'oo',因为'oo'后面的'n'是一个单词字符;

 /oon\b/ 匹配"moon"中的'oon',因为'oon'位于字符串的末端,后面没有单词字符;varstr="Hello jikexueyuan";  

var patt1=/\bjikexueyuan/g;

document.write(str.match(patt1));

  1. \B 匹配非单词边
  2. \n查找行符

varstr="Hello Hunger.\n be a FE."

var patt1=/\n/gdocument.write(str.search(patt1));

  1. n+ 匹配任何包含至少一 n 的字符串

varstr="Hello HHunger! Hello World!";

var patt1=/H+/g;

document.write(str.match(patt1)); 

varstr="Hello Hunger! Hello World!";

var patt1=/\w+/gdocument.write(str.match(patt1));

  1. n* 匹配任何包含零或多 n 的字符串

varstr="Hellooo Hunger! Hello World!";var patt1=/lo*/gdocument.write(str.match(patt1))

  1. n? 匹配任何包含零或一 n 的字符串

varstr="1, 100 or 1000?";  var patt1=/10?/gdocument.write(str.match(patt1));

  1. n{X} 匹配包含 X  n 的序列的字符串

varstr="100, 1000 or 10000?"var patt1=/\d{4}/g;  document.write(str.match(patt1));

  1. n{X,Y} 匹配包含 X  Y  n 的序列的字符串

varstr="100, 1000 or 10000?"var patt1=/\d{3,4}/g;  document.write(str.match(patt1));

  1. n{X,} 匹配包含至少 X  n 的序列的字符串

varstr="100, 1000 or 10000?"var patt1=/\d{3,}/g;  document.write(str.match(patt1));

  1. n$ 匹配任何 n 的字符串

varstr="Is this his"var patt1=/is$/gdocument.write(str.match(patt1));

  1. ^n匹配任何开头为 n 的字符串

varstr="Is this his"var patt1=/^Is/gdocument.write(str.match(patt1));

  1. 字: [\u4e00-\u9fa5]
  2. 手机号 1[0-9]{10}
  3. 邮箱 (\S)+[@]{1}(\S)+[.]{1}(\w)+
调试工具
 
 
知识分享自
http://e.jikexueyuan.com/invite/index.html?ZnJvbV9jb2RlPUpLTVBTMiZ1bmFtZT1qaWtlXzAwMDAxODMmY2hhbm5lbD1pbnZpdGVfc2hhcmVidXR0b25fZGlyZWN0MDQ=

 

posted @ 2015-08-24 15:24  sherryTian  阅读(232)  评论(0)    收藏  举报