2015-07-22 3 views
0

Как изменить:Как изменить строку Внутри символа, Javascript Regex

var a = ' z this is ok z '; 
a = a.replace(/z(.*)z/, function(match){ return match.trim().toUpperCase();}); 
console.log(a); // output: " Z THIS IS OK Z " 

Я ожидаю, что "ZTHIS IS ОКЗ";

в верхнем регистре работа, но функция обрезки игнорируется

+0

в вашем ожидаемом выходе у вас есть места в самом начале и в конце, должны ли они быть там? – depperm

+0

да, мне просто нужно удалить пробел между ** Z ** и ** THIS **, затем ** OK ** и ** Z ** –

ответ

1

Вы сопоставляя пространства с (*). Изменить на:

var a = ' z this is ok z '; 
 

 
// Here, you'll notice that I added the spaces next to the "z" character. 
 
a = a.replace(/z (.*?) z/, " Z$1Z ").toUpperCase(); 
 

 
console.log(a); // output: " ZTHIS IS OKZ "

Что это делает соответствует все между «г», а затем переписывает его с «Z» непосредственно рядом с ним.

+0

Прошу прощения, но это также исключает пробелы в первом и последнем " ZTHIS IS OKZ " –

+0

Я обновил свой ответ, чтобы включить пробелы в начале и конце. –

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