特性学习【JAVASCRIPT】-正则表达式 - 东南西北

东南西北

整理 思考 行动

特性学习【JAVASCRIPT】-正则表达式

首页 编程 0 评

javascript实现正则表达式的两种方式

第一种 字面符

  var reg = /\bis\b/g;
  var test_str='He is a boy,is it?';
  test_str=test_str.replace(reg,'IS');
  console.log(test_str);

其中'\b'表示单词边界,'/g'表示全局范围,该段js运行结果为
'He IS a boy,IS it?
第二种 RegExp对象

  var reg = new RegExp('\\bis\\b','gi');
  var test_str='He is a boy,IS it?';
  test_str=test_str.replace(reg,'IS');
  console.log(test_str);

效果跟第一种也是一样的,现在假如需要忽略大小写,除了增加'g'以外,还在增加'i'(忽略大小写)。

正则表达式的特性 -------- **字符类** ```javascript console.log('a1b2c3d4'.replace(/[abc]/g,'X')); ``` 这句代码的意思是将'a1b2c3d4'中所有的a或者b或者c替换成'X'. **字符类取反** ```javascript console.log('a1b2c3d4'.replace(/[^abc]/g,'X')); ``` 取反符号为^

范围类

console.log('a1b2c3d4FGGDFSG'.replace(/[a-zA-Z]/g,'X'));

其中a-z,表示所有的小写字母。

量词

?:出现最多一次(0次或1次)
+:出现大于等于一次
*:出现任意次
{n}:出现n次
{n,m}:出现n次到m次
{n,}:出现至少n次

贪婪模式和非贪婪模式

console.log("12345678".replace(/\d{3,6}/g,'X'));
console.log("12345678".replace(/\d{3,6}?/g,'X'));

不带?是贪婪模式,会匹配6位,带?是非贪婪模式会匹配3位。

分组

console.log("a1b2c3d4".replace(/[(a-z\d){3}]/g),'X');
console.log(/Byron|Casper/g,'X');//|表示或
//分组-反向引用  (?:)忽略分组
console.log("2015-12-25".replace(/(\d{4})-(\d{2})-(\d{2})/g,"$2-$3-$1"));

这里的分组表示范围,通程序里的()作用一样,其中引用通过$加下标取出。
javascript相关可以使用正则表达式的函数
//exec
//search
//match
//split
//replace
//test

【javascript】数字效果