JavaScript正则表达式使用自定义函数扩展“/pattern/”
我知道我能做到JavaScript正则表达式使用自定义函数扩展“/pattern/”,javascript,regex,Javascript,Regex,我知道我能做到 RegExp.prototype.xtend = function(){ console.log(123) } y = new RegExp(/pattern/) y.xtend() 我想以这种格式扩展regex模式:/pattern/,这样我就可以 /pattern/.xtend() 编辑:这是一个语法问题 原来是一个缺少的分号。我需要在regex模式前加一个分号,否则会导致语法错误 谢谢你的评论。现在效果很好。结果是它缺少了一个分号。我需要在regex模式前加一个分号,否
RegExp.prototype.xtend = function(){ console.log(123) }
y = new RegExp(/pattern/)
y.xtend()
我想以这种格式扩展regex模式:/pattern/,这样我就可以
/pattern/.xtend()
编辑:这是一个语法问题
原来是一个缺少的分号。我需要在regex模式前加一个分号,否则会导致语法错误
谢谢你的评论。现在效果很好。结果是它缺少了一个分号。我需要在regex模式前加一个分号,否则会导致语法错误 我在Firebug控制台中运行这个,它会自动返回最后一行的值。。。但是因为第三行后面没有分号,第四行以regex开头,所以它得到了一个错误
RegExp.prototype.xtend = function(){ console.log(123) }
y = new RegExp(/pattern/)
y.xtend()
/pattern/.xtend()
添加分号解决了这个问题
RegExp.prototype.xtend = function(){ console.log(123) }
y = new RegExp(/pattern/)
y.xtend(); // <~~ this semi-colon fixes the issue
/pattern/.xtend()
谢谢你的评论。现在效果很好。有什么问题吗?这对我来说在Chrome和FF11中是有效的。你确实需要在原型中定义xtend,就像在顶部一样,但它可以被称为/pattern/。xtend在FF11中工作得非常好。/asd/实际上只是新RegExp'asd'的一个快捷方式,所以没有什么真正的区别。请发布一个答案并接受它,这样它就不会吸引尚未回答的观点。或者,如果其他人在评论中提供了帮助,比如@Michael post one,请接受它。