2015-04-12 153 views
0

我想写一个正则表达式来匹配一个字符串与字符串中的所有字的开始。正则表达式的字边界

当用户键入一个字符(或字符串)时,它将用于通过名称或邮政编码(在城市和邮政编码连接的字符串中)查找城市。

的问题是,它也符合城市的END(这是不必要的...) 我使用正则表达式如下:

patt = new RegExp('\\b' + searchchar, 'i') 

如:

  • 的TestString: “Sint-niklaas(9100)”
  • char typed:'s'
    =>不需要的匹配S int-niklaa 小号(9100)< ==问题:-)
    =>想匹配小号 INT-尼克拉斯(9100)

  • 炭类型的: '9'
    =>想圣尼古拉匹配( 100)< == OK
+0

@ RokoC.Buljan他实际上使用了'\\ b' –

回答

2

我认为你正在寻找:

patt = new RegExp('^(?:[^(]+\\()?' + searchchar, 'mi'); 

^是字符串行开头的锚点(带有m修饰符)。输入字母时,由于括号内只有数字,因此可选非捕获组会失败,并且字母只能位于开头。输入数字后,可选组成功。

+0

Casimir&Hippolyte。那正是我期待的!谢谢 :) – Tom