因此,我嘗試編寫一個腳本,將a
轉換爲an
(必要時)。這比我想象的更難。正則表達式更改爲取決於下一個字
var txt = "This is a apple.";
var pos = txt.search(/a\s[aeiou]/i);
txt = pos != -1 ?
txt.substring(0,pos+1) + "n" + txt.substring(pos+1,txt.length) :
txt;
//"This is an apple."
這是工作,但是當我嘗試"There are 60 minutes in a hour."
,它並沒有不是變成an
因爲正則表達式。所以我改變了它:
var pos = txt.search(/a\s([aeiou]|hour)/i);
現在它工作(至少「小時」)。但現在如果我把"There are people in a university."
,它會改成an university
,這是不正確的。
那麼,是否有一個正則表達式可以涵蓋在英語中使用a
和an
的規則?謝謝!
不,除非你想擺在特殊情況下,如「小時」和「大學」 gazillions。 – TimK
@TimK - 以'uni'開頭的單詞總是使用'a'。 –
@Derek - 並不總是,例如「一個無趣的想法」。 – plasticinsect