0
我想只支持星号(*)通配符而不是正则表达式。如何在搜索时使用星号通配符?
这是我的代码:
for example : checkNames[i] = "Number of ongoing MS sessions"
var checkName = checkNames[i].split("*").join(".*");
supportRegExp(dataSource[j].ColumnName, checkName, validatedList,dataSource[j]);
,这是我supportRegExp功能:
function supportRegExp(arrayElem, checkName, validatedList, elem) {
var regexpArr = checkName
.replace(/\t/g, '\n')
.split("\n")
.map(function (item) {
return "^" + item + "$";
});
var regexp = new RegExp(regexpArr, 'i');
$my.isMatched = regexp.test(arrayElem)
if ($my.isMatched) {
validatedList.push(elem); //elem: my object { inside ColumnName, DisplayName }
AddValidatedList(arrayElem); //arrayElem : elem.ColumnName or elem.DisplayName bla bla.
}
}
这是作品。我正在写“num *”和即将到来的结果,然后我正在写“num | m”和即将到来的结果。因为我使用的是正则表达式,所以我只想支持'*'符号。
例如:当我写num *时,结果应该会出现,但是我正在写num | m不应该出现结果。因为我只想支持星号。
我该怎么办?
任何想法请。
你的意思是你希望能够在模式中指定一个文字'*'符号吗?你需要以某种方式逃避它。正则表达式使用''''',Lua使用'%',MS Office使用'〜'。使用任何:) –
@WiktorStribiżew它看起来像他希望'*'被转换为'。*',所以它被作为一个glob处理,但是希望所有其他正则表达式元字符被忽略。 – Phylogenesis
@Phylogenesis:你可以编辑这个问题吗?现在很难理解 –