Javascript 查找以给定搜索字符串-Regex开头的单词数

Javascript 查找以给定搜索字符串-Regex开头的单词数,javascript,jquery,Javascript,Jquery,我正在使用regex搜索酒店列表。有像“测试酒店广场”、“测试2新酒店广场”、“广场酒店”这样的名字 基本上我的要求是,如果用户类型为plaza,那么所有酒店都应该填充包含“plaza”。。。但如果用户输入“aza”,则不应填充任何结果。简而言之,在给定的字符串中,我需要找到是否有以用户输入的字符串开头的单词,如果是,则显示结果 这是一个代码,我卡住了,不工作 var regex = new RegExp("/\b"+searchString, "gi"); if (mainString.mat

我正在使用regex搜索酒店列表。有像“测试酒店广场”、“测试2新酒店广场”、“广场酒店”这样的名字

基本上我的要求是,如果用户类型为plaza,那么所有酒店都应该填充包含“plaza”。。。但如果用户输入“aza”,则不应填充任何结果。简而言之,在给定的字符串中,我需要找到是否有以用户输入的字符串开头的单词,如果是,则显示结果

这是一个代码,我卡住了,不工作

var regex = new RegExp("/\b"+searchString, "gi");
if (mainString.match(regex))
{
    return true;
}
这是工作,但它正在寻找所有发生的,即使它是一个中间字符或在任何位置,我不想

var regex = new RegExp(searchString , "gi");
if (mainString.match(regex))
{
    return true;
}

像这样调用
RegExp
构造函数时,regex不包含在斜杠(
/…/
)中,但字符串中有一个前导正斜杠。另外,转义序列反斜杠需要自己转义,所以您应该使用

var regex = new RegExp("\\b"+searchString, "gi");
编辑:

是的,因为
\b
是相对于
[A-Za-z0-9\
定义的,所以当涉及到非ASCII字符时,这确实是有问题的。您可能会使用更复杂或更简单的查找方法来解决此问题,但一个更简单的解决方案最有可能实现这一点,即
searchString
应位于开头或空白字符之后:


谢谢..这就是我想要的…只是一个小问题..当有像“Väst”这样的词时,如果我用“st”搜索,即使它不是以“st”开头,也会显示出来..是否有针对不同语言的特定原因或代码?我放弃了这篇文章,但无法完全理解。。。。。
var regex = new RegExp("(?:^|\\s)"+searchString, "gi");