2014-01-06 52 views
0

实施例:PHP/JS REGEX:在一个字符串中,如何替换两个用尖括号括起来的单引号?

变化

<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

相关问题