Javascript 字符串比较中的星号通配符
我想在javascript中使用星号通配符执行字符串匹配。如果用户输入vv*k,则: 维韦克应该匹配 可以有任意数量的星号。我实现了一个简单的例子,其中星号可以在开始、结束或中间位置Javascript 字符串比较中的星号通配符,javascript,jquery,regex,Javascript,Jquery,Regex,我想在javascript中使用星号通配符执行字符串匹配。如果用户输入vv*k,则: 维韦克应该匹配 可以有任意数量的星号。我实现了一个简单的例子,其中星号可以在开始、结束或中间位置 function matchString(pattern,columnValue) { if(pattern.indexOf('*')>-1){ if (pattern[0] == '*') { return columnValue.endsWi
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;
}
我想使用Regex实现它,以便在任何位置都可以使用任意数量的asterik。如果您指的是viv*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;
}
函数匹配StringPattern、columnValue{
var regex=new RegExp'^'+pattern.replace/\*/g'.{1}'+'$;
返回regex.testcolumnValue;
}
警报'pattern=*oo*a*,value=foo-bar,match='+matchString'*oo*a*','foo-bar';vv*k->vivek应匹配。对吗?或者你是说viv*k?我想用Regex实现它,这样在任何位置都可以使用任意数量的asterik。如果你在这个过程中遇到了一个特定的问题,就发布一个关于这个问题的问题。这个问题太宽泛/模糊了。谢谢。但不是这样的。如果我说n*它匹配任何位置有“n”的字符串,但它应该只返回以n开头的字符串。我已经更新了答案