javascript - 如果字符串不是较大字符串的一部分,则使用 javascript 中的正则表达式替换字符串

标签 javascript php regex string replace

我正在尝试编写一个函数,将 textarea 中的一些单词大写,但我遇到了麻烦,因为这些单词可能是其他单词的一部分,我只想在以下情况下将它们大写:他们孤独地站着。

例如:我想将 OR 大写,但仅限于不在像 befORe 这样的单词中时。然而,这些单词可以用多种方式编写,例如在行的开头、一个或多个空白字符之间或类似这样的内容:(somethingsomething)OR(somethingelse) 甚至可能更多,具体取决于其他人编写查询代码的方式。

我有使用正则表达式的想法,但我不够熟练,无法弄清楚编写这些单词的所有可能性。

我无法将 textarea 更改为其他更好的插件或编辑器,因为它已经是功能脚本的一部分。

任何有用的想法将不胜感激。

编辑:还有一个问题

我的问题得到了非常有用的答案,谢谢大家。不过我还有一个问题。如果除了检查它是否不是单词的一部分之外,我还想检查它前面或后面是否有 . 句点,该怎么办?我尝试在其开头添加 (?!\.) ,但这根​​本不起作用。有没有办法检查一下?

//编辑:没关系,我已经弄清楚了。它是\b(?!\.)something(?!\.)\b 用于检查单词的开头和结尾。

最佳答案

在单词边界上匹配 \b 可能适合:

'foo or bar'.replace(/\bor\b/, 'OR'); // foo OR bar

你还可以提供一个函数来替换,所以:

'foo or bar'.replace(/\b(or)\b/, function(m){return m.toUpperCase()})); // foo OR bar

这对于有多个可能匹配的情况可能会有好处:

'foo or bar and fum'.replace(/\b(or|and)\b/ig, function(m){return m.toUpperCase()}); // foo OR bar AND fum

关于javascript - 如果字符串不是较大字符串的一部分,则使用 javascript 中的正则表达式替换字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30931028/

相关文章:

javascript - 我一直在修复此共享短信功能的错误,但是当我通过谷歌信使应用程序共享时,它不会预先填充文本正文

javascript - 在 Javascript 中动态创建新的对象实例

JavaScript 兼容的正则表达式不允许零或任何字符?

javascript - 如何离线和在线运行 Web 应用程序(在 .NET 中)

Javascript 不在 if 语句中添加 className

php - 在redbeanphp中查询多对多关系

php - 使用 Imagick php 扩展将多页 PDF 转换为 JPG 时的黑色背景

PHP-SQL : fetching results in round robin fashion

ruby - 如果使用 Ruby 的页面上字符串 A 出现在字符串 B 之前,则匹配的正则表达式

c# - 检查文本是否有多个正则表达式匹配