我正在练习代码可读性和“美化”我的代码,所以我想学习如何实现它。
我已经看到其他代码这样做,但我不记得他们做了什么或怎么做了。
我想创建自己的.string函数,如下所示:
var rmbrackets = new function() {
return String.replace(/\[.*?\]/g, "");
}
console.log("this is a [test]test!".rmbrackets);
我希望上面记录“这是一个测试!”。 以上只是一个例子,我想用许多其他功能来做这件事。
我该怎么做?
答案 0 :(得分:3)
尝试
String.prototype.rmbrackets = function() {
return this.replace(/\[.*?\]/g, "");
};
这会增加Object String的原型。
此外,您需要添加()
才能实际执行它,因此完整的代码将是
String.prototype.rmbrackets = function() {
return this.replace(/\(.*?\)/g, "");
};
console.log("this is a (test)test!".rmbrackets());
在这个例子中,我编辑了你的正则表达式以匹配你想要达到的目标。
如果您同意 Matt Greer,,那么您可以为此创建一个函数:
function rmbrackets(text)
{
return text.replace(/\(.*?\)/g, "");
};
console.log(rmbrackets("this is a (test)test!"));
因为如果每个人都这样做,内置原型会很快受到污染。人们会互相支持很多。如果浏览器本身添加了rmbrackets也存在问题,您可能会将其隐藏起来。其他问题包括出现在循环中的意外属性等。一般来说,JS社区同意单独留下内置的原型。
答案 1 :(得分:1)
嗯......您可以修改prototype属性以添加新功能:
String.prototype.sayHello = function(){
return this + " Hello!";
}
"Blah".sayHello(); // "Blah Hello!"