[英]Replace string if the string is not part of a larger string using regex in javascript
我正在嘗試編寫一個將textarea
某些單詞大寫的函數,但是我遇到了麻煩,因為這些單詞可能是其他單詞的一部分,我只想在它們單獨站立時將它們大寫。
例如:我想大寫OR
但僅當不使用befORe
這樣的詞befORe
。 但是,這些單詞可以多種方式書寫,例如在一行的開頭,一個或多個whitespace
字符之間,或諸如此類的東西:( (somethingsomething)OR(somethingelse)
,甚至可能更多,具體取決於其他人的方式寫下他們的查詢代碼。
我有使用regex
的想法,但是我不夠熟練,無法找出編寫這些單詞的所有可能性。
我無法將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
像這樣嗎 (°_•)
var txt="or some text or before (.)or(.) anywhere Or";
console.log(txt.replace(/\bor\b/gi,"OR"));
// "OR some text OR before (.)OR(.) anywhere OR"
像這樣:
'(something)or(somethingelse) before or oR Or OR oreos thor'.replace([^\w]([oO][rR])[^\w], 'OR');
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.