2012-04-07 139 views
0

我知道我能做到這一點...JavaScript的正則表達式擴展`/模式/`自定義功能

RegExp.prototype.xtend = function(){ console.log(123) } 
y = new RegExp(/pattern/) 
y.xtend() 

我要以這種格式擴展正則表達式模式:/pattern/,所以我可以做...

/pattern/.xtend() 

編輯:這是語法問題

原來這是一個缺少分號。我需要在正則表達式模式之前使用分號,否則會出現語法錯誤。

感謝您的所有意見。現在效果很好。

+2

問題是什麼?這適用於我在Chrome和FF11 – 2012-04-07 16:27:28

+0

也適用於我。 – 2012-04-07 16:27:44

+0

您必須像在頂部那樣在原型中定義xtend(),但它可以被稱爲'/pattern/.xtend()' – 2012-04-07 16:28:33

回答

0

原來,這是一個缺少的分號。我需要在正則表達式模式之前使用分號,否則會出現語法錯誤。

我在Firebug控制檯中運行它,它會自動返回最後一行的值......但是因爲在第三行後面沒有分號,第四次以正則表達式開始,所以出現錯誤。

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() 

感謝所有的意見。現在效果很好。