Ответ 1
Попробуйте следующее:
mystring= mystring.replace(/"/g, "").replace(/'/g, "").replace(/\(|\)/g, "");
Немного REGEX, чтобы захватить эти надоедливые круглые скобки.
Я пробовал это:
mystring= mystring.replace(/"/g, "").replace(/'/g, "").replace("(", "").replace(")", "");
Он работает для всех двойных и одинарных кавычек, но для круглых скобок это заменяет первую скобку в строке.
Как я могу заставить его работать, чтобы заменить все круглые скобки в строке с помощью JavaScript? Или заменить все специальные символы в строке?
Попробуйте следующее:
mystring= mystring.replace(/"/g, "").replace(/'/g, "").replace(/\(|\)/g, "");
Немного REGEX, чтобы захватить эти надоедливые круглые скобки.
Вы должны использовать что-то более похожее:
mystring = mystring.replace(/["'()]/g,"");
Причина, по которой он не работал для других, заключается в том, что вы забыли "глобальный" аргумент (g)
обратите внимание, что [...]
является символьным классом. что-либо между этими скобками заменяется.
Вы можете сделать это в одном операторе replace.
mystring = mystring.replace(/["'\(\)]/g, "");
Если вы пытаетесь заменить все специальные символы, вы можете использовать шаблон, подобный этому.
mystring = mystring.replace(/\W/g, "");
который заменит любой символ без слова.
Вы также можете использовать регулярный эксперимент, если вы ищете скобки, вам просто нужно их избежать.
mystring = mystring.replace(/\(|\)/g, '');
Это приведет к удалению всех (
и )
во всей строке.
Только одна замена будет делать:
"\"a(b)c'd{e}f[g]".replace(/[\(\)\[\]{}'"]/g,"")
Это должно работать:
mystring= mystring.replace(/"/g, "").replace(/'/g, "").replace(/\(/g, "").replace(/\)/g, "");
Чтобы заменить несколько вхождений, вы должны использовать регулярное выражение в качестве строки поиска, где вы используете строковый литерал. Как вы нашли, поиск по строкам заменит только первое вхождение.
Метод замены на основе строк не будет заменен глобально. Таким образом, вы, вероятно, захотите использовать метод замены на основе регулярных выражений. Следует отметить:
Вам нужно выйти (
и )
, поскольку они используются для сопоставления групп:
mystring= mystring.replace(/"/g, "").replace(/'/g, "").replace(/\(/g, "").replace(/\)/g, "");
Это может решить проблему:
myString = myString.replace(/\"|\'|\(|\)/)
Пример