2013-02-14 83 views
0

我在另一個問題中發佈了這個,但我認爲它是單獨的,所以我做了另一個。正則表達式的一部分在javascript中不匹配

替換方法中有正則表達式。表達式都能正確匹配並替換。這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; 
}; 

這裏是一些輸入 「她清楚地讀取與自信。她的寫作技能是她的水平非常好。我敢肯定,如果詹娜繼續努力(他/她)會成爲一個強大的未來英語演講者。「

一切ELS代替精..只是(他/她)

+0

你爲什麼要逃避's'以'/ \(他\/\她\)/'?不應該是'/ \(他/她\)/'嗎? – Tomalak 2013-02-14 08:54:33

回答

2

/\(he\/\she\)/g將取代 「(他/她)」(因爲\s匹配任何空白)。

如果您要替換「(他/她)」,應該是/\(he\/she\)/g

+2

+1很棒的發現!另外'他\\ \她'應該是'他\ /她'等 – 2013-02-14 08:56:25

+0

非常感謝!這工作......但我不明白爲什麼其他人取代如果他們也不正確。 – schmitzkr 2013-02-14 09:13:48

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; 
};