2013-04-15 201 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