出於某種原因,這兩個正則表達式的行爲方式相同:在正則表達式範圍逃生點
"43\\gf..--.65".replace(/[^\d.-]/g, ""); // 43..--.65
"43\\gf..--.65".replace(/[^\d\.-]/g, ""); // 43..--.65
在第一個正則表達式,我不逃避點(.
),而在第二我做的正則表達式(\.
)。
有什麼區別,爲什麼他們的行爲相同?
出於某種原因,這兩個正則表達式的行爲方式相同:在正則表達式範圍逃生點
"43\\gf..--.65".replace(/[^\d.-]/g, ""); // 43..--.65
"43\\gf..--.65".replace(/[^\d\.-]/g, ""); // 43..--.65
在第一個正則表達式,我不逃避點(.
),而在第二我做的正則表達式(\.
)。
有什麼區別,爲什麼他們的行爲相同?
因爲點在字符類內(方括號[]
)。
在http://www.regular-expressions.info/reference.html看看,它說(根據焦炭類部分):
任何字符,除了^ - ] \該字符添加到該字符類可能的匹配 。
和減號('-')只有在範圍中間時才需要轉義? – gdoron
因爲它對我來說工作得很好(不管我把它放在哪裏都行得通。?) – gdoron
如果你想匹配連字符,在打開方括號後立即添加它,例如: [-A-Z]。否則,連字符指定範圍。它適用於你的情況,可能只是因爲你沒有在正則表達式中指定範圍,但我建議你按照參考,以防你將在稍後添加範圍。 – usoban