私は次のコードを使用して交換する正規表現検索&のすべての出現を置き換えるためにしようとしていると、何らかの理由でそれが唯一の最初の出現置き換え交換しない:正規表現は、すべての出現
var userContent = '<div class="header"><!--Start Main Menu--><ul class="main-menu"> <li><a href="/">Home</a> </li> <li><a href="/">About</a> </li> <li><a href="/">Portfolio</a> </li> <li><a href="/">Contact</a> </li> </ul><!--End Main Menu--></div><div class="footer"><!--Start Main Menu--><ul class="main-menu"> <li><a href="/">Home</a> </li> <li><a href="/">About</a> </li> <li><a href="/">Portfolio</a> </li> <li><a href="/">Contact</a> </li> </ul><!--End Main Menu--></div>';
var menuItems = "<li><a href='/'>Home</a></li><li><a href='/about'>About</a></li><li><a href='/portfolio'>Portfolio</a></li><li><a href='/contact'>Contact</a></li>";
var quote = function(str) {
return str.replace(/([.?*+^$[\]/(){}|-])/g, "\\$1");
};
var re = new RegExp(quote('<!--Start Main Menu-->') + "[^]+" + quote('<!--End Main Menu-->'), 'g');
userContent = userContent.replace(re, '<!--Start Main Menu--><ul class="main-menu">' + menuItems + '</ul><!--End Main Menu-->');
console.log(userContent);
を私はなぜ、私は引用/g
と私はuserContent.replaceに/g
を追加しようとしましたが、それはちょうどそれが好きではないようだと思った理由を把握することはできません。
フィドル:https://jsfiddle.net/xqt3kj7r/
正規表現をHTMLで解析することはお勧めできません。 – Nisarg
@ NisargShah私は知っていますが、この場合は私が働いている状況です。それが1回の発生に対してHTMLの罰金を解析しているのであれば、なぜそれは両方のためにそれをしませんか?これを行うより良い方法はありますか? –
DOM要素を処理することでJavascriptで行うことができます。あなたは何をしようとしているのか、その質問で説明できますか? – Nisarg