javascript - 正则表达式匹配文本后跟空格或什么都不匹配

标签 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>`;
});

上面的代码突出显示了文本中出现的带有空格的任何示例关键字。 这是为了防止突出显示诸如 function123 之类的输入。

话虽这么说,我仍然想突出显示诸如 function 这样的输入,而后面没有任何内容。

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

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

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

最佳答案

您的要求的字面翻译会产生 (?=\s|$) (“后跟空格或字符串末尾”)。

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

您可能还想查看 \b (字边界): \bfoo\b 匹配 foo 之前或之后没有单词字符(即字母、数字或 _)。

关于javascript - 正则表达式匹配文本后跟空格或什么都不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54412304/

相关文章:

javascript - 如何在没有提交按钮的情况下使用回车键在表单中发送 <select>

javascript - 在 React 应用程序中按下刷新或后退按钮时 CSS 丢失

python - 以数字 5 开头的正则表达式

javascript - JQuery 检查正则表达式并添加类

ruby - 在 ruby​​ 中使用正则表达式计算字符串中数字和字符的长度

javascript - 使用 DocuSign 自定义按钮转义和字符

javascript - 在滚动条上显示导航栏 : Not Shown on Reload

PHP PREG_JIT_STACKLIMIT_ERROR - 低效的正则表达式

javascript - 如何在 JavaScript 中引用今天的日期?

java - 用括号分割字符串,用括号分组,java