Javascript变量/字符串函数?

时间:2014-02-15 17:36:06

标签: javascript string function

我正在练习代码可读性和“美化”我的代码,所以我想学习如何实现它。

我已经看到其他代码这样做,但我不记得他们做了什么或怎么做了。

我想创建自己的.string函数,如下所示:

var rmbrackets = new function() {
  return String.replace(/\[.*?\]/g, "");
}
console.log("this is a [test]test!".rmbrackets);

我希望上面记录“这是一个测试!”。 以上只是一个例子,我想用许多其他功能来做这件事。

我该怎么做?

2 个答案:

答案 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());

在这个例子中,我编辑了你的正则表达式以匹配你想要达到的目标。

Demo


如果您同意 Matt Greer,,那么您可以为此创建一个函数:

function rmbrackets(text)
{
  return text.replace(/\(.*?\)/g, "");
};
console.log(rmbrackets("this is a (test)test!"));

因为如果每个人都这样做,内置原型会很快受到污染。人们会互相支持很多。如果浏览器本身添加了rmbrackets也存在问题,您可能会将其隐藏起来。其他问题包括出现在循环中的意外属性等。一般来说,JS社区同意单独留下内置的原型。

Demo

答案 1 :(得分:1)

嗯......您可以修改prototype属性以添加新功能:

String.prototype.sayHello = function(){
   return this + " Hello!";
}

"Blah".sayHello(); // "Blah Hello!"