我想用「你的妹妹」代替「你」。然而,像「youtube」這樣的詞必須保持不變。所以我決定使用在JavaScript中,有沒有一種方法來區分其他字符的字母?
replace(/ you /, " your sister ");
但是現在字符串「我愛你!」保持不變,以及任何字符串,其中沒有後跟字符串的空格。我想知道「你」這個詞後面的字是否是一個字母。如果是,請保持不變,如果不是,請將其更改爲「您的妹妹」。
我想用「你的妹妹」代替「你」。然而,像「youtube」這樣的詞必須保持不變。所以我決定使用在JavaScript中,有沒有一種方法來區分其他字符的字母?
replace(/ you /, " your sister ");
但是現在字符串「我愛你!」保持不變,以及任何字符串,其中沒有後跟字符串的空格。我想知道「你」這個詞後面的字是否是一個字母。如果是,請保持不變,如果不是,請將其更改爲「您的妹妹」。
什麼是「字母」?這不像聽起來那麼愚蠢:作爲一個例子,許多語言都把7
當成一個數字,但是有一些拼寫字母實際上是一個字母。因此,在這種情況下,您需要描述您的意思,以便可以根據您的要求定製答案(您在這方面做得很好,但標題仍然具有啓發性)。
要回答的實際問題,你可以做一個全局正則表達式替換,如:
var replaced = input.replace(/\byou\b/g, 'your sister');
利用這一點,字符串「你」將被「你的妹妹」所取代,但只有當它的包圍通過「詞邊界」(空格,句子的開始/結束,符號等)。
我們還需要使用/.../g
修飾符(用於'全局匹配'),以便替換作用於「您」的所有實例,而不僅僅是第一個。
你需要單詞邊界字符\b
s.replace(/\byou\b/g, 'your sister')
雖然可能帶有'g'修飾符 –
是的,可能:) –
您正在尋找\b
(字邊界):
slice(/\byou\b/, "your sister")
但什麼是slice
?我假定你的意思是這樣
string.replace(/\byou\b/, "your sister")
\b
單詞邊界匹配 - 單詞字符之間(實際上是字母加下劃線)和非單詞字符。
因此/\byou\b/
會匹配「你」,當不是另一個詞的一部分。
這是「歷史原因」:它使人們容易平時一套用C允許像編程語言識別的字符相匹配。
str.replace(「you」,「your sister」); –
@torazaburo他們可能也在尋找一個有用的鏈接或完整的答案如何使用它,因爲'\ b'只能用於真正的正則表達式調用=) –