简体   繁体   English

PHP / JS REGEX:在字符串中,如何替换尖括号括起来的2个单引号?

[英]PHP/JS REGEX: In a string, how to replace 2 single quotes that are enclosed by angle brackets?

Example: 例:

Change 更改

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

into

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

Javascript: 使用Javascript:

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

php: PHP:

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

If you need to catch more than one group inside enclosed brackets then regex is kind of tricky, use this instead: 如果您需要在封闭的方括号内捕获多个组,则正则表达式有点棘手,请改用以下方法:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM