簡體   English   中英

無法在 Javascript 中替換字符串中的“[”和“]”字符

[英]Can't replace “[” and “]” characters in a string in Javascript

我正在嘗試使用 javascript 替換字符串中的“[”和“]”字符。

當我在做

newString = oldString.replace("[]", "");

然后它工作正常 - 但問題是我的字符串中有很多這樣的字符,我需要替換所有出現的字符。

但是當我這樣做時:

newString = oldString.replace(/[]/g, "");

或者

newString = oldString.replace(/([])/g, "");

什么都沒有發生。 我也嘗試過使用 HTML 數字,例如

newString = oldString.replace(/[]/g, "");

但它也不起作用。 任何想法如何制作?

您要么需要轉義方括號,並在它們之間添加一個管道:

newString = oldString.replace(/\[|]/g, "");

或者您需要將它們添加到字符類(方括號)中並將它們都轉義:

newString = oldString.replace(/[\[\]]/g, "");

演示

...有12個字符具有特殊含義:反斜杠\\ ,插入符號^ ,美元符號$ ,期間或點綴. ,豎線或管道符號| ,問號? ,星號或星* ,加號+ ,左括號( ,右括號)和左方括號[ ,左花括號{ ... 如果您想在正則表達式中使用這些字符中的任何一個作為文字,您需要轉義他們用反斜杠。”

[]在正則表達式中是一個字符類。 由於您沒有逃脫,他們說“找到以下任何字符”,而不是提供任何字符。 嘗試/[\\[\\]]/代替。

編輯:@andy 是對的。 忘記放入容器[]

這是一個簡單的解決方案:

newString = oldString.split("[]").join("");

有類似的情況。 我只是像這樣使用反斜杠。

-replace '\[','' -replace ']',''

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM