Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   вставить в .replace значение переменной? (https://javascript.ru/forum/misc/33270-vstavit-v-replace-znachenie-peremennojj.html)

deivan 16.11.2012 17:39

вставить в .replace значение переменной?
 
Нужно удалить из строки все повторяющиеся символы, но символ этот заранее неизвестен, он приходит в переменной.

допустим, чтобы все удалить "а" из строки str, я бы написал
alert(str.replace(/a/g,"");)


а как написать то же, но для случая если удаляемый символ находится в переменной someVar?..

ruslan_mart 16.11.2012 17:41

var myvar = "a";
....replace(myvar, "");

devote 16.11.2012 17:43

var myvar = "a";
alert( str.replace( new RegExp( myvar, "g" ), "" ) );

deivan 16.11.2012 18:01

Цитата:

Сообщение от devote (Сообщение 216281)
var myvar = "a";
alert( str.replace( new RegExp( myvar, "g" ), "" ) );

перфект, то что нужно!!!

tenshi 17.11.2012 00:39

только сначала надо проэкранировать спецсимволы
https://github.com/nin-jin/PMS/blob/...BRegExp.jam.js

nerv_ 17.11.2012 02:02

Цитата:

Сообщение от tenshi
только сначала надо проэкранировать спецсимволы
https://github.com/nin-jin/PMS/blob/...BRegExp.jam.js

var x = '\w.a'.replace( /(?=.)/g, '\\' );
var z = new RegExp( x, 'g' );

alert( '1\w.a1'.replace( z, '' ) );

bot87 17.11.2012 09:13

а как можно запихнуть переменную в регулярное выражение
/var/
?

tenshi 17.11.2012 22:19

Цитата:

Сообщение от nerv_ (Сообщение 216338)
var x = '\w.a'.replace( /(?=.)/g, '\\' );
var z = new RegExp( x, 'g' );

alert( '1\w.a1'.replace( z, '' ) );

var x = 't.a'.replace( /(?=.)/g, '\\' );
var z = new RegExp( x, 'g' );

alert( '1t.a1'.replace( z, '' ) );

devote 17.11.2012 23:00

Ну дык экранировать нужно не все просто:
var x = 't.\\a';
var z = new RegExp( x.replace( /(?=\W)/g, '\\' ), 'g' );
  
alert( '1t.\\a1-1t.\\a1-1t.\\a1'.replace( z, '' ) );

nerv_ 17.11.2012 23:59

tenshi, devote, спасибо :)


Часовой пояс GMT +3, время: 00:23.