我想在javascript中使用星号()通配符执行字符串匹配。如果用户输入“v v * k”,则:字符串比较中的Asterik通配符
“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来实现它,以便任何位置都可以使用任意数量的星号。”*如果在流程中遇到*特定*问题,请发布有关该问题的问题。这个问题太广泛/模糊。 –