Javascript 字符串编辑原型

Javascript 字符串编辑原型,javascript,regex,string,prototype,Javascript,Regex,String,Prototype,这是我的代码: String.prototype.count = function(character) { var seq = new RegExp('/'+character+'/g'); var matches = this.toString().match(seq); return matches }; 'hello world'.count('o'); 这就是它应该做的: 返回os的数组 这就是它所做的: 返回空值 注:如果您不想在字符中使用RegE

这是我的代码:

String.prototype.count = function(character) {
    var seq = new RegExp('/'+character+'/g');
    var matches = this.toString().match(seq);
    return matches
};

'hello world'.count('o');
这就是它应该做的:
  • 返回
    o
    s的数组
这就是它所做的:
  • 返回空值

注:如果您不想在
字符中使用RegExp,则应将其转义。

您不是在创建所需的RegExp。应该是:

    var seq = new RegExp(character, 'g');

当您使用
RegExp
构造函数时,您只需给它正则表达式的内容,而不需要
/
分隔符——这些分隔符只在RegExp文本中使用。您的RegExp正在查找文本字符串
/o/g

这不是使用RegExp构造函数创建regex的方式,请检查此处的文档,也可能是重复的,您的方法的命名非常糟糕。我希望名为
count
的方法返回一个整数。
    var seq = new RegExp(character, 'g');