gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 19:09:47 24 4
gpt4 key购买 nike

我正在尝试编写一个函数,将 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com