在javascript中使用通配符搜索文件名

时间:2012-11-28 21:15:55

标签: javascript regex

我正在使用通配符(*%。)搜索文件名,即用户将输入表达式,脚本将在驻留在预定义目录中的文件名上运行用户输入模式。我尝试在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>

2 个答案:

答案 0 :(得分: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, ".*"); 

测试 here

然后您可以将此正则表达式模式与RegExp一起使用 - 阅读 this

答案 1 :(得分:0)

您需要将这些通配符转换为有效的正则表达式。现在,您正在尝试匹配字符串和另一个字符串。