2012-02-19 162 views
0

如何更改此正則表達式以除去除字母和'(單引號)之外的字符串中的所有內容?正則表達式除去字母和'[單引號]

pattern = /\b(ma?c)?([a-z]+)/ig; 
  1. 這種模式刪除不需要的空格和大寫第一個字母,變成其餘爲小寫
  2. 通過字母我的意思是英文字母A-Z。
+2

什麼是字母表?像拉丁字母,希臘字母,西裏爾字母?這是傳統的7位數據,還是實際上是Unicode,現在網絡已超過80%? – tchrist 2012-02-19 14:22:59

+2

你目前的正則表達式是什麼?更具體地說,'\ b(ma?c)?'與您的需求有關? – pimvdb 2012-02-19 14:26:38

回答

4

刪除字符,你需要使用的東西,其實這樣做,像串replace功能(它可以接受一個正則表達式爲「從」參數)。

然後你只是處理一個character class的正常應用,這在JavaScript(以及大多數其他的正則表達式變種)使用[...],其中...是應該在全班描述。你會使用^在開始反轉類的含義是:

在你的情況下,它可能是:

str = str.replace(/[^A-Za-z']/g, ""); 

...將取代除了英文字符AZ( ABCDEFGHIJKLMNOPQRSTUVWXYZ),az(abcdefghijklmnopqrstuvwxyz)和單引號(例如,刪除它)。

然而,請注意,在英文不使用字母字符不會獨善其身,還有那些在各種語言在網絡上使用(甚至,倒行逆施,在英語中,「借來的很多 「像」voilà「這樣的詞)。

+1

OP說**「except」**。那麼,它不應該是'/ [^ A-Za-z']/g'嗎? – FakeRainBrigand 2012-02-19 14:32:50

+0

@FakeRainBrigand:**謝謝!**我錯過了「except」這個詞!固定。 – 2012-02-19 14:35:23

相關問題