标签:
格式:/正则表达式/g var a="He is a boy 233"; var s=a.replace( /\bis\b/g , ‘IS‘ ); console.log(s); // He IS a boy 233 var m=a.replace( /\bis\b/g , ‘‘); console.log(m); // He a boy 233 var n=a.replace( /[^0-9]/g , ‘‘ ); console.log(n); // "233" [^0-9]这是反向类,下面有详细的说明
var reg=new RegExp(‘正则表达式‘,‘标识符‘)
var a="He is a boy.This is a dog."; var reg1=new RegExp(‘/\bis\b/‘); var s1=a.replace(reg1,‘IS‘); console.log(s1); // He IS a boy.This is a dog. var reg2=new RegExp(‘/\bis\b/‘, ‘g‘); var s2=a.replace(reg2,‘IS‘); console.log(s2); // He IS a boy.This IS a dog.
var a=‘a1Ab2B‘; var s1=a.replace(/[a-e]/g,‘Q‘); console.log(s1); // ‘Q1AQ2B‘ 默认大小写敏感 var s2=a.replace(/[a-e]/ig,‘Q‘); console.log(s2); //‘Q1QQ2Q‘ //忽略大小写
\t | 水平制表符 |
\v | 垂直制表符 |
\n | 换行符 |
\r | 回车符 |
\0 | 空字符 |
\f | 换页符 |
表达式[abc]把字符a或b或c归为一类,表达式可以匹配这类的字符 ‘ab cd ef‘.replace(/[acf]/g,‘x‘); // ‘xb xd ex‘
[^abc]表示不是字符a或者b或c的内容 ‘ab 123c ef‘.replace(/[^acf]/g,‘x‘) // ‘axxxxxcxxf‘ 空格也被x替换
[a-z] 表示从 a 到 z 的任意字符 // 这是一个闭区间,也就是包含 a 和 z 本身 var a=‘a1b2c3d4e5f6‘; var s=a.replace(/[b-e]/g,‘W‘); console.log(s) // ‘a1W2W3W4W5f6‘
var a=2016-05-16; var s1=a.replace(/[0-9]/g,‘A‘); console.log(s1); // AAAA-AA-AA 若需要将中间的 - 也匹配到则 [0-9-] var s2=a.replace(/[0-9-]/g,‘A‘); console.log(s2); // AAAAAAAAAAAA
字符 | 等价类 | 含义 |
. | [^\r\n] | 除了回车符和换行符之外的所有字符 |
\d | [0-9] | 数字字符 |
\D | [^0-9] | 非数字字符 |
\s | [\t\n\x0B\f\r] | 空白符 |
\S | [^\t\n\x0B\f\r] | 非空白符 |
\w | [a-zA-Z_0-9] | 单词字符(字母、数字、下划线) |
\W | [^a-zA-Z_0-9] | 非单词字符 |
var a=‘this is ab2hh‘; var s=a.replace(/ab\d./g,‘Q‘); console.log(s) // this is Qh
字符 | 含义 |
^ | 以xxx开始 |
$ | 以xxx结束 |
\b | 单词边界 |
\B | 非单词边界 |
var a=‘This is a cat‘; var s=a.replace(/\bis\b/g,‘IS‘); console.log(s); // This IS a cat var b=‘@abc@def@‘; var s1=b.replace(/@./g,‘Q‘); console.log(s1); // ‘QabcQdef@‘ var s2=b.replace(/^@./g,‘Q‘); console.log(s2); // ‘Qabc@def@‘ var s3=b.replace(/.@$/g,‘Q‘); console.log(s3); // ‘@abc@defQ‘
字符 | 含义 |
? | 出现零次或一次(最多出现一次) |
+ | 出现一次或多次(至少出现一次) |
* | 出现零次或多次(任意次) |
{n} | 出现n次 |
{n,m} | 出现n到m次 |
{n , } | 至少出现n次 |
var a=‘a123456bc‘; var s1=a.replace(/\d+/g,‘h‘); console.log(s1); //ahbc var s2=a.replace(/\d{2}/g,‘h‘); console.log(s2); //ahhhbc
‘1234567‘.replace(/\d{3,6}/g,‘h‘); // h7 尽可能多的匹配 比如{3 , 6} 则匹配出现6次的
‘1234567‘.replace(/\d{3,6}?/g,‘h‘); // hh7
‘a1b2c3d4‘.replace(/([a-z]\d){3}/g,‘h‘); // hd4
‘ByJaon‘.replace(/By|Jaon/g,‘h‘); // hh
‘2016-12-11‘.replace(/(\d{4})-(\d{2})-(\d{2})/g,‘$2/$3/$1‘); // 12/11/2016
正向前瞻 | exp(?=assert) |
负向前瞻 | exp( ?!assert ) |
var a=‘a2*34v8‘; var s=a.replace(/\w(?=\d)/g,‘h‘); // /\w(?=\d)/g ,中 \w 是匹配部分 , (?=\d) 是断言 conole.log(s); // h2*h4h8
var r=/abc/igm; r.ignoreCase; //true r.global; //true r.multiline; //true
/cat/.test(‘cat and dogs‘) //true 在参数字符串中匹配cat 如果正则表达式带有g修饰符,则每一次test方法都从上一次结束的位置开始向后匹配 带有g修饰符时,可以通过正则对象的lastIndex属性指定开始搜索的位置 var r=/x/g; var s=‘_x_x‘; r.test(s); //true r.lastIndex; //2 r.test(s); //true r.lastIndex; //4 r.test(s); // false
标签:
原文地址:http://www.cnblogs.com/chtt/p/5808047.html