也许在我不知道如何搜索它之前已经发布了这个问题。
我想知道如何创建.replace()
或.toString()
等方法。我的意思是,如果我有一个变量,我想搜索该变量是否有数字,就像这样做
var someVariable = "hello 34, how are you";
var containsIntsNumber = someVariable.SearchInteger();//being search integer my custom method
if(containsIntsNumber )
{
console.log("It does have integers");
}
我怎样才能做到这一点?
答案 0 :(得分:1)
您可以修改prototype上的String object。
String.prototype.someFunction = function () {
/* Your function body here; you can use
this to access the string itself */
};
答案 1 :(得分:1)
您可以将其添加到字符串原型中。
String.prototype.SearchInteger = function(){
//do stuff
}
你可以这样称呼它
var someVariable = "hello 34, how are you";
var containsIntsNumber = someVariable.SearchInteger();
在JS社区中添加其他功能可能会引起争议。请注意,当您枚举变量的属性时,它会显示出来,理论上它可以被外部库覆盖或用于其他目的。
答案 2 :(得分:1)
这可以通过几种方式实现。有一个返回布尔值的函数或扩展字符串原型,以便您可以直接在字符串变量上调用此方法。
这将检查天使字符串是否有数字。
String.prototype.hasInteger = function(){
return /\d/.test(this);
}
但是不建议增加原生对象,所以我的建议只是使用一个函数。
function hasInteger(value){
return /\d/.test(value);
}
答案 3 :(得分:1)
if(!String.prototype.SearchInteger)
{
Object.defineProperty(String.prototype, 'SearchInteger',
{
value: function()
{
// body of your function here
},
enumerable: false
});
}
答案 4 :(得分:0)
在这种情况下,您必须扩展String的prototype
。由于String是一个内置类型,不建议扩展他们的原型,但如果你喜欢你仍然可以做(但不要!)
简单的例子就像是
String.prototype.SearchInteger = function () {
return this.test(/^.*\d+.*$/g);
};
这应该有效,但我没有测试。