ボクの名前を呼ぶときは、初めと終わりにカワイイをつけてください.js
某アイドルのマスターでシンデレラな感じの音ゲーをやってたらなんか自分の名前を呼ぶときは前と後ろに「カワイイ」をつけろとか言ってくるアイドルが出てきた。
そこで、正規表現でそのアイドルの名前をマッチして前後に「カワイイ」を書き加えるコードを書いてみた。
var input = "輿水幸子はゲーム『アイドルマスターシンデレラガールズ』に登場する自称・カワイイボクっ娘アイドルである", output = null; var str = input, // 入力受け取り pf = "カワイイ*", //前に付け加える文字列 sf = "*カワイイ", //後ろに付け加える文字列 // マッチする名前を拾う n = str.match(/さちこ|サチコ|さち子|幸子|輿水幸子|こしみずさちこ|コシミズサチコ|さっちん|さっちゃん|さっちー/mg); var u, i, l; // 名前が見つかったら if (n){ //名前の前後にそれぞれ”カワイイ”をつける for (i=0, l=n.length; i<l; i++) { //すでに整形済みの名前はスルー u = new RegExp(n[i]+'(?!'+sf+')'); // 入れ替え str = str.replace(u, pf+n[i]+sf); } // 出力 output = str; console.log(output); //"カワイイ*輿水幸子*カワイイはゲーム『アイドルマスターシンデレラガールズ』に登場する自称・カワイイボクっ娘アイドルである" }
ブックマークレット
javascript:(function(){var c="color:#FFE5FF;background:#b6c2e9;font-size:.6px;vertical-align:middle;",d=document.body.innerHTML,_p="%E3%82%AB%E3%83%AF%E3%82%A4%E3%82%A4%EF%BC%8A",_s="%EF%BC%8A%E3%82%AB%E3%83%AF%E3%82%A4%E3%82%A4",p="<span style="+c+">"+_p+"</span>",s="<span style="+c+">"+_s+"</span>",n=d.match(/%E3%81%95%E3%81%A1%E3%81%93|%E3%82%B5%E3%83%81%E3%82%B3|%E3%81%95%E3%81%A1%E5%AD%90|%E5%B9%B8%E5%AD%90|%E8%BC%BF%E6%B0%B4%E5%B9%B8%E5%AD%90|%E3%81%93%E3%81%97%E3%81%BF%E3%81%9A%E3%81%95%E3%81%A1%E3%81%93|%E3%82%B3%E3%82%B7%E3%83%9F%E3%82%BA%E3%82%B5%E3%83%81%E3%82%B3|%E3%81%95%E3%81%A3%E3%81%A1%E3%82%93|%E3%81%95%E3%81%A3%E3%81%A1%E3%82%83%E3%82%93|%E3%81%95%E3%81%A3%E3%81%A1%E3%83%BC/mg),u,i,l;if(n){for(i=0,l=n.length;i<l;i++){u=new RegExp(n[i]+'(?!'+s+')');d=d.replace(u,p+n[i]+s);}document.body.innerHTML=d;}})();
上の文字列をURL欄に張って実行します。
実行すると…
詳細は以下のような感じ
javascript:(function(){ var c ="color:#FFE5FF;background:#b6c2e9;font-size:12px;vertical-align:middle;", d = document.body.innerHTML, _p = "カワイイ*", _s = "*カワイイ", p = "<span style="+c+">"+_p+"</span>", s = "<span style="+c+">"+_s+"</span>", n = d.match(/さちこ|サチコ|さち子|幸子|輿水幸子|こしみずさちこ|コシミズサチコ|さっちん|さっちゃん|さっちー/mg), u, i, l; if (n){ for (i=0, l=n.length; i<l; i++) { u = new RegExp(n[i]+'(?!'+s+')'); d = d.replace(u, p+n[i]+s); } document.body.innerHTML = d; } })();
変数_pと_sの値を変えれば別の言葉を付け加えることもできます。