2013-04-15 199 views
4

我已經搜索過,現有的答案都不適用於我。我的問題是:正則表達式特殊字符

我對正則表達式的代碼,搜索匹配和亮點匹配開始弗里斯特信字母:

var newvals = [], regexp = new RegExp('\\b' + search.escapeRegExp(), insensitive ? 'ig' : ''); 

這工作得很好英/美信,但我也有來自挪威字母「æøå」的特殊字符。任何想法如何改變這個正則表達式來覆蓋特殊字符?

編輯:(謝謝!)應用從山姆聖佩特森技巧後,我得到了它的顯示特殊字符,但是當我做了搜索,自動完成,現在只匹配大寫或小寫字母。因此,如果我輸入「Ø」,則建議以大寫字母「Ø」開頭的所有單詞,而不是以小寫字母開頭的單詞「ø」。小寫搜索也是一樣。但是,常規字母通常顯示爲大寫和小寫。此問題僅適用於特殊字符。 任何想法?

+0

這就是Javascript而不是Java!請編輯您的問題中的標籤。 – SuperSaiyan

+3

看看這個:http://stackoverflow.com/questions/280712/javascript-unicode – BlitZ

回答

6
var re = new RegExp(/[a-z\Wæøå]+/igm); 

我嘗試了反對:

HVA海特杜?

Hei。 Min navn erSøren!

S-Ø-R-E-N。

Jeg bor i etgrønnhus og jegogsålærerjapansk。

似乎與此相符。至少在http://gskinner.com/RegExr/

我想如果你保存在UTF-8的JavaScript,這將工作。 的Unicode轉義爲挪威字母是:

  • Æ\ u00C6,æ\ u00E6
  • Ø\ u00D8,ø\ u00F8
  • A \ u00C5,A \ u00E5

希望這有助於。

+0

謝謝,這部分工作如何我想它的工作。我使用該腳本從MYSQL數據庫自動填充輸入字段。但是對於這個腳本,它只顯示小寫字母或大寫字母:例如:當我輸入「Ø」時,它只顯示包含大寫Ø的單詞,小寫字母則是相同的。杜你有什麼線索如何解決這個問題? – user2282217