Skip to content

正则创建方式的区别 #67

@Yangxiaqing

Description

@Yangxiaqing
var name = "yang";
var reg = /^\d+"+name+"\d+$/;
console.log(reg.test("2015yang2016"));//false

所以:在字面量方式中,我们//之间包起来的所有的内容都是元字符,有的具有特殊的意义,大部分都是代表本身含义的普通的元字符
"+name+"并不是拼接的意思,而是元字符。
对于这样的需求(字符串拼接),我们只能使用实例创建的方式了

var name = "yang";
var reg = new RegExp("^\\d+" + name + "\\d+$","g");
console.log(reg.test("2015yang2016"));//true
总结:
  • 字面量方式中出现的一切都是元字符,所以不能进行变量值的拼接,而实例创建的方式是可以的
  • 字面量方式中直接写\d就可以,而在实例中需要把它转译\\d

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions