作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我只想支持星号(*)通配符而不是正则表达式。
这是我的代码:
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 不应该出现结果。因为我只想支持星号。
我该怎么办?
请有任何想法。
最佳答案
从 this question 大量借款,我认为您正在追求以下内容:
var checkName =
checkNames[i]
.split("*")
.map(function (s) { return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'); })
.join(".*");
在分割 *
字符后转义正则表达式的每个部分,准备好与 .*
连接回来。
关于javascript - 如何在搜索时仅使用星号通配符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41298353/
我是一名优秀的程序员,十分优秀!