Javascript 正则表达式匹配文本,后跟空格或完全不匹配

Javascript 正则表达式匹配文本,后跟空格或完全不匹配,javascript,regex,Javascript,Regex,我正在尝试将纯文本格式化为富JavaScript文本,下面是我的代码中突出显示一些示例关键字的部分: var sampleKeywords = '(function|var|throw|return|class)\s'; elem.innerHTML = elem.textContent.replace(new RegExp(sampleKeywords, 'g'), function(val) { return `<mark>${val}</mark>`; }

我正在尝试将纯文本格式化为富JavaScript文本,下面是我的代码中突出显示一些示例关键字的部分:

var sampleKeywords = '(function|var|throw|return|class)\s';

elem.innerHTML = elem.textContent.replace(new RegExp(sampleKeywords, 'g'), function(val) {
    return `<mark>${val}</mark>`;
});
var-sampleKeywords='(函数| var | throw | return | class)\s';
elem.innerHTML=elem.textContent.replace(新的RegExp(sampleKeywords,'g'),函数(val){
返回`${val}`;
});
上面的代码突出显示文本中出现的任何带有空格的示例关键字。 这是为了防止突出显示输入,例如
function123

尽管如此,我仍然希望突出显示输入,例如
函数
,后面没有任何内容

本质上,我想突出显示任何后跟空格的示例关键字,或者根本不后跟任何内容。

如何在我的正则表达式模式中实现这一点


注意:我知道我的代码有明显的缺陷,比如突出显示引用的文本或没有突出显示所有可用的JavaScript关键字,但上面提供的代码只是抽象的;不完整。

需求的直译产生
(?=\s |$)
(“后跟空格或字符串结尾”)

但是,您可以简单地反转条件:
(?!\S)
(“后面不跟非空格字符”)


您可能还希望查看
\b
(单词边界):
\bfoo\b
匹配的
foo
前面或后面没有单词字符(即字母、数字或
\uu
)。

这是为了防止突出显示输入,例如“not\u函数”
,但是
not\u\uu
在前面,而不是后面?您是否希望检查文本的前后是否有空格?CertainPerformance表示同意。如前所述,代码包含一些缺陷。这里的重点是检测后跟空格的文本或完全没有。我还将示例输入从
not\u a\u function
更改为
function123
,以避免混淆。