JavaScriptで文字列の前方一致、後方一致、完全一致検索を行うJavaScriptのサンプルです。indexOfは文字列の出現indexを取得しますが、文字列が見つからない場合は「-1」を返します。これを利用して判定を行うようにしています。
HTMLサンプル
1 2 3 4 5 |
比較文字列:<input id="txt1StrMatchSample" type="text" name="txt1StrMatchSample" value="abcdefg"/> 接頭辞/接尾語:<input id="txt2StrMatchSample" type="text" name="txt2StrMatchSample" value="abc"/> 前方一致検索の結果:<input id="txt3StrMatchSample" type="text" name="txt3StrMatchSample" /> 後方一致検索の結果:<input id="txt4StrMatchSample" type="text" name="txt4StrMatchSample" /> 完全一致検索の結果:<input id="txt5StrMatchSample" type="text" name="txt5StrMatchSample" /> |
JavaScriptサンプル
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
jQuery(function($) { jQuery(document).on('blur', '#txt1StrMatchSample, #txt2StrMatchSample', function(){ var str1 = document.getElementById("txt1StrMatchSample").value; var str2 = document.getElementById("txt2StrMatchSample").value; var randamStr = getRandomStr(); var resultFront = getStrMatchFront(str1, str2, randamStr); var resultRear = getStrMatchRear(str1, str2, randamStr); var resultAll = getStrMatchAll(str1, str2, randamStr); jQuery("#txt3StrMatchSample").val(resultFront); jQuery("#txt4StrMatchSample").val(resultRear); jQuery("#txt5StrMatchSample").val(resultAll); }); }); /* *ランダム文字列を取得します。 */ function getRandomStr() { var result = Math.random().toString(36).slice(-8); return result; } /* *前方一致検索を行います。 */ function getStrMatchFront(str1, str2, randamStr) { var str = randamStr + str1; if (str.indexOf(randamStr + str2) !== -1) { return "TRUE"; } else { return "FALSE"; } } /* *後方一致検索を行います。 */ function getStrMatchRear(str1, str2, randamStr) { var str = str1 + randamStr; if (str.indexOf(str2 + randamStr) !== -1) { return "TRUE"; } else { return "FALSE"; } } /* *完全一致検索を行います。 */ function getStrMatchAll(str1, str2, randamStr) { var str = randamStr + str1 + randamStr; if (str.indexOf(randamStr + str2 + randamStr) !== -1) { return "TRUE"; } else { return "FALSE"; } |
実行サンプル
比較文字列:
接頭辞/接尾語:
前方一致検索の結果:
後方一致検索の結果:
完全一致検索の結果:
比較文字列に” abcdefg” 前方にスペースを追加
接頭辞/接尾語に”abc”としても前方一致してしまいます
m-shibata様。ご指摘ありがとうございます。
確かに比較文字列の前後に半角スペースを入力すると正常に動作しないことを確認しました。
JavaScriptソースのサンプルを修正したのでご確認下さい。