字面量var reg = /\bis\b/g; 'He is a boy.Is he?'.replace(reg,'IS') 构造函数var reg = new RegExp('\\bisb\\','g'); 'He is a boy.Is he?'.replace(reg,'IS') 直接使用'He is a boy.Is he?'.replace(/\bis\b/g,'IS') 求教:1、为何/\啥的每句表达方式都不一样(\\还有/\) 2、构造函数中的= new RegExp是啥
/ /这个标志是起始与结尾符,划定表达式范围的,\b表示的是单词边界,而/ \是两个符号,不是一对的。'He is a boy.Is he?'.replace(/\bis\b/g,'IS'),这句的意思是将这句话中的单词is换成IS,运行结果是'He IS a boy.Is he?',而Is不会改变因为不匹配。var reg = new RegExp('\\bisb\\','g');这个意思是新建一个正则表达式对象,并对它进行构造(理解成赋值)。
其实就是Javascript正则表达式对象定义的两种方法:1、正则表达式字面量方法:var reg = /patterns/flag;2、RegExp构造函数方法:var reg = new RegExp();接受两个字符串参数,此外需要注意双重转义 具体内容建议你看看JavaScript高级程序设计103-109页,属于基础概念吧