2016-04-04 6 views
0

JAVASCRIPT регулярных выраженийРегулярные выражения в JavaScript-стирании пространств

Этот код ищет одинарные кавычки и заменяет их в двойные кавычки. Он не заменит одиночную кавычку, которая является частью слова (т.е. не)

function testRegExp(str) 
{ 
    var matchedStr = str.replace(/\W'|'\W/gi, '"'); 
    return matchedStr; 
} 
console.log(testRegExp("I'm in a 'blue house with a cat' and I don't care!")) 

РЕЗУЛЬТАТ ---> Я в «голубой дом с кошкой», и я не забочусь !

Обратите внимание, что двойные кавычки не заменяются пробелами, заменяя одиночные кавычки. Почему пространство исчезло до и после этой цитаты? Благодаря

ответ

0
/\W'|'\W/gi 

Вы заменяете любой несловообразующим символ, за которым следует одинарные кавычки (\W') или (|) какой-либо одной цитаты, за которым следует без символа слова ('\W) с двойной кавычки без пробелов.

Пространства считаются символами без слов, поэтому вы в основном заменяете пробел и одинарную кавычку двойной сметкой без интервала.

Вот решение вашей проблемы:

function testRegExp(str) 
{ 
    var matchedStr = str.replace(/\W'/g, ' "').replace(/'\W/g, '" '); 
    return matchedStr; 
} 

console.log(testRegExp("I'm in a 'blue house with a cat' and I don't care!")) 
+0

я ушел из модификатор я, потому что не является необходимым для данного аргумента. –

+0

Фантастический! Я забыл, что пространство считалось неглавным персонажем, который становился раздражающим ... –

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

  • Нет связанных вопросов^_^