如何用unicode替換字符串中的字符'+'?如何在JavaScript中替換+?
E.G.
Before replace -> "table+end"
After replace -> "table002Bend"
我嘗試使用
tableName.replace(/+/g,"002B);
,但瀏覽器中運行的JS拋出的錯誤,指出:
Invalid identifier
如何用unicode替換字符串中的字符'+'?如何在JavaScript中替換+?
E.G.
Before replace -> "table+end"
After replace -> "table002Bend"
我嘗試使用
tableName.replace(/+/g,"002B);
,但瀏覽器中運行的JS拋出的錯誤,指出:
Invalid identifier
你需要逃避+
,如果在正則表達式中使用它。試試這種方式:
tableName.replace(/\+/g,"002B")
非轉義加號是匹配一個或多個量詞。
請注意,你甚至不需要這個簡單的替換正則表達式。
最後的分號表示該行是獨立的語句。它不是*它只是一個表達。 –
你是對的,謝謝 –
甚至可能是OP忘記分配這個表達式,例如, 'tableName = tableName.replace(...);'(字符串值是不可變的,所以必須將變量'replace()'(這是一個* new *字符串值)的結果明確地分配給變量。 –
使用正則表達式時,+
具有特殊含義的正則表達式,需要進行轉義:
tableName = tableName.replace(/\+/g, '002B');
如果你只是更換一個+
,你不需要正則表達式:
tableName = tableName.replace('+', '002B');
但是,與此相關的警告是,它只會替換遇到的第一個+
。一種解決方法做一個「快」取代,一切都是爲了結合split()
和join()
:
tableName = tableName.split('+').join('002B');
兩樣東西:+
字符在正則表達式有特殊的含義,如果你看一下錯誤你:
SyntaxError: Invalid regular expression: /+/: Nothing to repeat
您看到+
有效表示:重複表達式的前一個「部分」。您可以使用反斜槓來指定要替換文字+
char(/\+/
)或您可以創建一個字符類,其中不需要轉義所有特殊字符:/[+]/
。
之後,你可能仍然有由於缺少字符串分隔符的顯示錯誤:
tableName.replace(/+/g,"002B);//<--missing closing "
總而言之,無論是其中之一應該做的伎倆:
tableName.replace(/\+/g,"002B");
tableName.replace(/[+]/g,"002B");
如果,不過你要「url-encode」一個字符串,爲什麼不簡單用encodeURI(tableName)
?
這聽起來像你試圖URL錯誤地編碼一個字符串。 – zzzzBov