JavaScript Regex用于检查搜索到的字符串是否以空格或空格开头

Bla*_*ird 0 javascript regex

我有以下代码:

var requestData = {};

var byPattern = /by=(\w+)/;
var value = byPattern.exec(stringToSearch);
if (value && value.length === 2)
    requestData.by = value[1];
Run Code Online (Sandbox Code Playgroud)

这个正则表达式的第一个问题是,如果stringToSearch是例如"standby = foo",它匹配并返回"foo".我希望它在那里失败.我希望正则表达式只有在"by"或空格之前没有任何内容时才能匹配.

所以我换成了 /^\s*by=(\w+)/

那更好,但我希望正则表达式匹配stringToSearch,例如"city = paris by = foo".它应匹配并返回"foo".不是这里的情况:/

有人可以帮我修复正则表达式吗?非常感谢!

Mal*_*lio 5

神奇的词是\b:

var byPattern = /\bby=(\w+)/;
console.log(byPattern.exec("by=3"));
console.log(byPattern.exec(" by=3"));
console.log(byPattern.exec("standby=3"));
Run Code Online (Sandbox Code Playgroud)

只有前两个匹配,这是(我认为)你想要的.

  • `\ bby`也匹配`stand-by = 3`中的`by` (2认同)