0

我在另一个问题中发布了这个,但我认为它是分开的,所以我做了另一个。

replace 方法中有正则表达式。表达式都正确匹配并替换。这个replace(/\(he\/\she\)/g,"he")和这个replace(/\(he\/\she\)/g,"she")

不要替换...我不知道为什么。这是代码。

function replaceGender(name, gender, comment) {

  if(gender == "m")
  {
    comment = comment.replace(/\(name\)/g, name).replace(/\(He\/She\)/g,"He").replace(/\(His\/\Her\)/g,"His").replace(/\(his\/\her\)/g,"his").replace(/\(he\/\she\)/g,"he").replace(/\(him\/\her\)/g,"him");
  }
  else if(gender == "f")
  {   
    comment = comment.replace(/\(name\)/g, name).replace(/\(He\/She\)/g,"She").replace(/\(His\/\Her\)/g,"Her").replace(/\(his\/\her\)/g,"her").replace(/\(he\/\she\)/g,"she").replace(/\(him\/\her\)/g,"her");
  }

  return comment;
};

这是一些输入“她阅读清晰且自信。她的写作技巧非常适合她的水平。我相信如果 Jenna 继续努力(他/她)将来会成为一个强大的英语演讲者。”

其他所有东西都替换好了..只是(他/她)

4

2 回答 2

2

/\(he\/\she\)/g将替换“(他/他)”(因为\s匹配任何空格)。

/\(he\/she\)/g如果您想替换“(他/她)” ,应该是。

于 2013-02-14T08:54:31.767 回答
0

这将工作..

function replaceGender(name, gender, comment) {

  if(gender == "m")
  {
    comment = comment.replace(/\(name\)/g, name).replace(/\(He\/She\)/g,"He").replace(/\(His\/Her\)/g,"His").replace(/\(his\/her\)/g,"his").replace(/\(he\/she\)/g,"he").replace(/\(him\/her\)/g,"him");
  }
  else if(gender == "f")
  {   
    comment = comment.replace(/\(name\)/g, name).replace(/\(He\/She\)/g,"She").replace(/\(His\/Her\)/g,"Her").replace(/\(his\/her\)/g,"her").replace(/\(he\/she\)/g,"she").replace(/\(him\/her\)/g,"her");
  }
  return comment;
};
于 2013-02-14T09:18:58.640 回答