编辑String的原型

时间:2014-10-01 05:48:31

标签: 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');

这是应该做的:

  • 返回o s
  • 的数组

这就是它正在做的事情:

  • 返回null

2 个答案:

答案 0 :(得分:1)

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

alert('hello world'.count('o'));

ps:如果你不想在character中使用正则表达式 - 你应该逃避它。

答案 1 :(得分:0)

您没有创建所需的RegExp。它应该是:

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

当您使用RegExp构造函数时,只需为其提供正则表达式的内容,您就不需要/分隔符 - 这些仅用于RegExp文字。您的RegExp正在查找文字字符串/o/g