字符串比较中的Asterik通配符

时间:2015-10-05 12:50:20

标签: javascript jquery regex

我想在javascript中使用星号()通配符执行字符串匹配。如果用户输入" v v * 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;
}

我想使用Regex实现它,以便可以在任何位置使用任意数量的星号。

1 个答案:

答案 0 :(得分:0)

如果你的意思是" v v * k" - > " vivek",怎么样: -



$(document).ready(function() {
  $('#row5 tr').click(function(event) {
    $(this).toggleClass('selected');
    if ($(event.target).is(':not(:checkbox)')) {
      $(':checkbox', this).prop('checked', $(this).hasClass('selected'));
      // if you want to trigger click handler bound to checkbox
      // without making it bubbles, use:
      /*$(':checkbox', this).triggerHandler('click');*/
    }
  });
});




修改

为开始添加^,为结尾添加$