- ベストアンサー
名字と名前の比較方法とは?
- 名字と名前を比較する方法について詳しく教えてください。
- 名字のみを比較する方法や、名字を無視して名前のみを比較する方法についても知りたいです。
- 上記の条件に基づき、HTMLのコードを使用して指定された名字と名前を比較する方法を説明します。
- みんなの回答 (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'; } } } // できるなら、かくしつもんをとじてからにしてほしい
その他の回答 (1)
- fujillin
- ベストアンサー率61% (1594/2576)
ご質問文を読んでも、どう比較したいのか理解できませんでした。 それなので、ヒントのみになります。(読解力がなくてすみません) 比較部分の >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'); はとても大雑把に見えますが、問題ないのかな… (ご提示の文書の範囲ではもちろん問題ありませんが…)
お礼
指摘して頂いたところをもう一度勉強し直してみます。 有難うございます。
お礼
すみません、つい後回しにしてしまって… 正規表現を使うと上手にできるのですね。 スルーしていたのですがサンプルを参考に この部分もちゃんと勉強したいと思います。 有難うございます。