2016-09-12 2 views
-1

Я хочу заменить это: 'FL\X\KT''FLÄKT'.заменить экранированный символ, javascript, regexp

Пробовал это: str.replace(/\\X\\/g, 'Ä');

Но это только удаляет обратный слэш.

Любые идеи?

+1

Пожалуйста, предоставьте реальный [MCVE]. Если эта строка примера должна быть фактическим литералом строки JavaScript, тогда результирующий строковый объект не будет иметь никаких косых черт в нем. – Quentin

+1

как вы определяете исходную строку? \ X и \ K не являются метамарами строк, поэтому обратные косые черты могут быть проанализированы, оставив только строку "FLXKT" в строке, что означает, что вам нужно выполнить команду var voo foo = FL \\ X \\ KT'' с 'FL \ X \ KT' в строке. –

+0

4 обратная косая черта сделает это –

ответ

1
str ='FL\\X\\KT'; 
str.replace(/\\X\\/g, 'Ä'); 

Еще один пример, чтобы проиллюстрировать это более ясно, вы можете использовать предупреждения вместо console.log, если вы хотите:

<div id="a">FL\X\KT</div> 
<script type="text/javascript"> 
    var a='FL\\X\\KT'; 
    console.log(a); 
    console.log(document.getElementById('a').innerHTML=='FL\\X\\KT'); 
</script> 
+0

OP string is '' FL \ X \ KT'', а не '' FL \\ X \\ KT'' ... – MarcoS

+1

Вы должны избегать обратной косой черты в строке. – ban17

+0

OP хочет преобразовать * эту конкретную строку * ... Ваш ответ может быть: 'str = 'FLÄKT'; str.replace (/ /, ''); ':-( – MarcoS

0

\ рассматривается как экранирующий символ, так что вы можете использовать только :

str = str.replace(/X/g, 'Ä'); 

DEMO

это будет ш ork на простой строке, где вы хотите заменить X wit Ä. Однако, если у вас есть больше Imput, также содержащий X, которые вы не хотите, чтобы заменить, я думаю, вы можете попробовать что-то вроде:

var str = unescape("FL\\X\\KT"); 
str = str.replace(/\\X\\/g, 'Ä'); 

DEMO

однако функция экранирования в осуждается, так не лучшая идея.

Смежные вопросы