0

ワイルドカード文字 (* %.) を使用してファイル名を検索しようとしています。つまり、ユーザーが式を入力すると、スクリプトは定義済みのディレクトリにあるファイル名に対してユーザー入力パターンを実行します。JavaScript で実行しようとしましたが、問題に直面しています。 . 私はjavascriptを初めて使用するので、それが最善の方法かどうかわかりません。私が試したコードのスニペットは次のとおりです。

<script>
function checkPattern(str1) 
{
var matchesFound = new Array();
for(var i=0; i<directory.length;i++)
{
    var newStr1 = directory[i];

    if(newStr1 == newStr1.match(str1))
        matchesFound.push(newStr);

}
//display items in matchesFound
}
</script>
</head>
<body>

<form>
<input name="testText" type="text" size=45>
<button onClick="checkPattern(testText.value);">Check pattern</button>

</form>
</body>
4

2 に答える 2

1

%SQL 構文 (ワイルドカード)を使用しましょう。

そのような検索文字列を正規表現パターンに変換するには、次のようなものを使用します »

RegExp.quote = function(str) {
  return (str+'').replace(/([.?*+^$[\]\\(){}|-])/g, '\\$1');
};

var replaceCallback = function(match) { 
  return RegExp.quote(match);
}

regexPattern = searchString.replace(/[^%]+/g, replaceCallback).replace(/%/g, ".*"); 

ここでテストします

RegExp次に、そのような正規表現パターンを-read thisで使用できます。

于 2012-11-28T21:57:16.953 に答える
0

これらのワイルドカード文字を有効な正規表現に変換する必要があります。現在、文字列を別の文字列と照合しようとしています。

于 2012-11-28T21:31:10.117 に答える