【发布时间】:2015-10-05 12:50:20
【问题描述】:
我想在 javascript 中使用星号() 通配符执行字符串匹配。如果用户输入 "vv*k" 那么:
“vivek”应该匹配。
可以有任意数量的星号。我实现了一个简单的情况,星号可以位于开始、结束或中间位置。
function matchString(pattern,columnValue)
{
if(pattern.indexOf('*')>-1){
if (pattern[0] == '*')
{
return columnValue.endsWith(pattern.substr(1,pattern.length - 1)) ? true:false
}
else if (pattern[pattern.length - 1] == '*')
{
return columnValue.startsWith(pattern.substr(0,pattern.length -1)) ? true:false
}else{
var stringArray = pattern.split('*')
return columnValue.startsWith(stringArray[0]) && columnValue.endsWith(stringArray[stringArray.length-1]) ? true:false
}
}else{
return (columnValue.indexOf(pattern)>-1)
}
return false;
}
我想使用正则表达式来实现它,以便可以在任何位置使用任意数量的星号。
【问题讨论】:
-
"vv*k" -> "vivek"应该匹配。那是对的吗?还是你的意思是"viv*k"? -
“我想用 Regex 来实现它,这样任何位置都可以使用任意数量的星号。” 如果你遇到一个特定的过程中的问题,发布一个关于这个的问题。这个问题太宽泛/太模糊了。
标签: javascript jquery regex