• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:名前と名字をそれぞれ比較して表示する)

名字と名前の比較方法とは?

このQ&Aのポイント
  • 名字と名前を比較する方法について詳しく教えてください。
  • 名字のみを比較する方法や、名字を無視して名前のみを比較する方法についても知りたいです。
  • 上記の条件に基づき、HTMLのコードを使用して指定された名字と名前を比較する方法を説明します。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

var form = document.forms[0].elements; var myouji = form['m']; var namae = form['n']; var P = document.getElementsByTagName ('p'); function aaa () {  var cond0 = myouji.value ? new RegExp ('^' + myouji.value) : null;  var cond1 = namae.value ? new RegExp (namae.value + '$') : null;  var e, p, t;  var i = 0;  while (e = P[i++]) {   p = e.parentNode.parentNode;   t = e./*@cc_on @if(1) innerText @else@*/ textContent /*@end@*/;   if (cond0) {    if (cond0.test (t)) {     if (cond1) {      if (cond1.test (t)) {       p.style.display = 'block';      }      else {       p.style.display = 'none';      }      continue;     }     p.style.display = 'block';    }    else {     p.style.display = 'none';    }   }   else {    p.style.display = 'block';   }  } } // できるなら、かくしつもんをとじてからにしてほしい

kiseki777
質問者

お礼

すみません、つい後回しにしてしまって… 正規表現を使うと上手にできるのですね。 スルーしていたのですがサンプルを参考に この部分もちゃんと勉強したいと思います。 有難うございます。

その他の回答 (1)

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.1

ご質問文を読んでも、どう比較したいのか理解できませんでした。 それなので、ヒントのみになります。(読解力がなくてすみません) 比較部分の >if(htm==sn+sm || htm.match(sn) && sm="指定なし" || sn="指定なし"){ 「sm="指定なし"」や「 sn="指定なし"」の部分はこのままだとエラーになると思われます。 もしこの式が意図通りなのなら、  「(sm="指定なし")」 や 「(sn="指定なし")」としないと。 でも、常に定数なのでtrueと等価になるし、sm、snの値は2回目以降は置き換えられますが… あるいは、「==」や「===」の意図ならそのように。 (A || B && C || D )の演算の順序を把握なさっていますか? 曖昧な場合は御確認のうえ、()でくくるなどで思う順にしてください。 https://dev.mozilla.jp/localmdc/localmdc_9970.html http://ja.wikibooks.org/wiki/JavaScript/%E6%BC%94%E7%AE%97%E5%AD%90#.E6.BC.94.E7.AE.97.E5.AD.90.E3.81.AE.E5.84.AA.E5.85.88.E9.A0.86.E4.BD.8D あと、関係はありませんが、  f.n.value などは f.elements["n"].value のほうが、安全かも。  getElementsByTagName('p'); はとても大雑把に見えますが、問題ないのかな… (ご提示の文書の範囲ではもちろん問題ありませんが…)

kiseki777
質問者

お礼

指摘して頂いたところをもう一度勉強し直してみます。 有難うございます。

関連するQ&A