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- 阅读这个

于 2012-11-28T21:57:16.953 回答
0

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

于 2012-11-28T21:31:10.117 回答