2014-01-06 2 views
0

Пример:PHP/JS REGEX: В строке, как заменить 2 одинарные кавычки, которые заключены в угловые скобки?

Изменить

<a href='site.com'>Click Here</a>

в

<a href="site.com">Click Here</a>

+0

Шаг 1: выберите необходимый язык. Шаг 2: опубликуйте, что вы пробовали. Шаг 3: опубликуйте проблемы, с которыми вы столкнулись – HamZa

+1

Покажите, что вы пробовали, и мы поможем вам улучшить ваше регулярное выражение. Вы хотите учиться на этом, в конце концов, не так ли? – rednaw

ответ

1

Javascript:

str.replace(/<(.*?)'(.+?)'(.*?)>/g,'<$1"$2"$3>'); 

PHP:

preg_replace("/<(.*?)'(.+?)'(.*?)>/g",'<$1"$2"$3>',$str); 

Если вам нужно, чтобы поймать более одной группы внутри закрытых скобок, то регулярное выражение рода сложно, используйте вместо этого:

var bracket = 0; 
str = str.split("").map(function(c) { 
    if (c === "<") bracket++; 
    if (c === ">") bracket--;  
    if (c === "'" && bracket >= 1) { 
    return '"'; 
    } else { 
    return c; 
    } 
}).join(""); 
+0

Спасибо за ответ. Я могу принять последний ответ, так как я должен также обрабатывать другие html-атрибуты якоря. Я не так хорош в JQM, я не знаю, почему он не может обрабатывать 'href = 'https: //site.com' по сравнению с href =" https://site.com "' – TyrHunter

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