我在另一个问题上发布了这个,但我认为它是单独的,所以我又做了另一个。
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继续努力工作(他/她)将来会成为一名优秀的英语演讲者。”
所有els都被取代了......只是(他/她)答案 0 :(得分:2)
/\(he\/\she\)/g
将替换“(他/他)”(因为\s
匹配任何空格)。
如果你想替换“(他/她)”,那应该是/\(he\/she\)/g
。
答案 1 :(得分: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;
};