如何用#:. [in regex on javascript]中的字符定义单词边界

时间:2012-02-23 13:51:02

标签: javascript regex string match

我想搜索这个词:'#foo'

在这个字符串中:

first foo second #foo

这样只有最后一个'#foo'(带'#')才匹配

我使用此代码会导致两个错误:

var mySearch ='#foo'
var regexp = new RegExp('\\b' + mySearch + '\\b', 'g');
  1. 搜索mySearch = 'foo'将导致与“foo”匹配(错误! - 应该只匹配第一个)
  2. 搜索mySearch = '#foo'将导致完全没有命中(错误 - 应与第二个匹配)
  3. 怎么写得对吗?

2 个答案:

答案 0 :(得分:0)

尝试:

var regexp = new RegExp('\b' + mySearch + '\b', 'g');

答案 1 :(得分:0)

正则表达式中的

\b 的边界。它将无法匹配空格和磅#之间的边界。

所以你的regexp应该只是

var regexp = new RegExp(mySearch + '\\b', 'g');