我正在尝试将纯文本格式化为丰富的 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/