我正在使用通配符(*%。)搜索文件名,即用户将输入表达式,脚本将在驻留在预定义目录中的文件名上运行用户输入模式。我尝试在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>
答案 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)
您需要将这些通配符转换为有效的正则表达式。现在,您正在尝试匹配字符串和另一个字符串。