正则表达式


正则表达式的作用:匹配合适的文本

可以用来判断字符串是否合规,替换特定格式字符,提取子字符串,判断是否包含字串,过滤字符串

js中的正则使用

var  regexp_1 = /a/;  // 常用
var  regexp_2 = new Regexp("a"); 
<script>
   function demo() {
        var regexp_1 = /a/;
        var str = 'abc'
        if (regexp_1.test(str)){  // 可以用作判断字符串是否合规
          alert(regexp_1.test(str))   // test() 对传入字符串进行匹配
        } else {
          alert("no match")
        }
    }
   demo()
</script>

匹配规则

var  regexp_1 = /a/i;  // 匹配时忽略大小写
var  regexp_2 = /a/g;  // 执行全局匹配(匹配全句,而不是匹配到一个就返回)
// 理解: 是匹配到符合一个就够,还是想把所有符合的都匹配出来,而且还不能替代多行

var  regexp_3 = /a/m;  // 多行匹配
 
var  regexp_4 = new Regexp("a","i"); 
var  regexp_5 = new Regexp("a","g"); 
var  regexp_6 = new Regexp("a","m"); 
 
var  regexp_7 = new Regexp("a","igm"); 
var  regexp_8 = /a/igm;   // 多种模式一起使用

输出索引

function demo() {
    var regexp = /s/g
    var str = 's_s_s_s_s_s_s_s'
    regexp.test(str)
    console.log(regexp.lastIndex)  // 输出结果是索引 -1
      regexp.test(str)
    console.log(regexp.lastIndex)
    }
demo()

子表达是匹配

var str = 'st_s_s_s_s_s_s_s'
var regexp = /s(t)(_)/  // 先匹配一下st_,匹配到之后再匹配一下里面的 t 和 _
// 只有整体匹配成功,后面的子字符串匹配才会被执行匹配

表达式方法

// test() Methode
var regexp = /xxx/
var str = 'xxx'
var boolean_value = regexp.test(regexp)  // test() 方法返回bool类型,是否匹配到值
// exec() Method
// 当整句匹配失败时,会返回一个null的空数组
// 否则,返回:
// 数组的第0个元素存储的是整句匹配到的字符串
// 第1个元素存放的是第一个引用型分组(子表达式)匹配的字符串
// 第2个元素存放的是第二个引用型分组(子表达式)匹配的字符串,依次类推。

var str = 'st_s_s_st_s_s_s_s'
var regexp = /s(t)(_)/  // 先匹配一下st_,匹配到之后再匹配一下里面的 t 和 _ 
console.log(regexp.exec(str))
// 输出:
// [
//   'st_', // 整句匹配结果,如果这个都匹配不到就会返回 null 就没有下面的了
//   't',   // 第一个子表达式匹配结果
//   '_',   // 第二个子表达式匹配结果
//   index: 0,
//   input: 'st_s_s_st_s_s_s_s',
//   groups: undefined
// ]

// 文章说只能写2个字串,但是经过我的测试可以放多个字串请一起匹配

在线测试

正则表达式在线测试


文章作者: Nico
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Nico !
  目录