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:你可以編輯這個問題嗎?現在很難理解 –