JavaScript 正则表达式,用于检查搜索的字符串前面是否为空或空格



我有以下代码:

var requestData = {};
var byPattern = /by=(w+)/;
var value = byPattern.exec(stringToSearch);
if (value && value.length === 2)
    requestData.by = value[1];

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

所以我用/^s*by=(w+)/代替

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

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

魔术词是b

var byPattern = /bby=(w+)/;
console.log(byPattern.exec("by=3"));
console.log(byPattern.exec(" by=3"));
console.log(byPattern.exec("standby=3"));

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

如果你想要在捕获组之前有空格或什么都没有,那将是( +|^)

/( |^)by=(w+)/

从技术上讲,我匹配空间或什么都没有,但效果是一样的。

相关内容

最新更新