我正在练习代码可读性并“美化”我的代码,所以我想学习如何实现它。
我见过其他代码执行此操作,但我不记得它们是哪个或如何执行的。
我想创建自己的 .string 函数,如下所示:
var rmbrackets = new function() {
return String.replace(/\[.*?\]/g, "");
}
console.log("this is a [test]test!".rmbrackets);
我希望上面的内容记录“这是一个测试!”。 上面只是一个例子,我想用许多其他函数来实现这一点。
我该怎么做?
最佳答案
尝试
String.prototype.rmbrackets = function() {
return this.replace(/\[.*?\]/g, "");
};
这会添加到对象字符串的原型(prototype)。
此外,您需要添加 ()
才能实际执行它,因此完整的代码为
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!"));
因为如果每个人都这样做,内置原型(prototype)很快就会受到污染。人们经常会互相踩踏。还有一个问题是,如果浏览器本身添加了 rmbrackets,您可能会隐藏它。其他问题包括 for in 循环中出现意外的属性等。总的来说,JS 社区已经同意不使用内置原型(prototype)。
关于JavaScript 变量/字符串函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21801137/