js 用正则表达式模仿SQL like % 的模糊匹配
生活随笔
收集整理的這篇文章主要介紹了
js 用正则表达式模仿SQL like % 的模糊匹配
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
作者:Yan
//過濾篩選 function dCell_ChangeCell(col, row, text) {if(row == 2){var colCount= dCell.GetCols(0);var rowCount= dCell.GetRows(0);var v_row;var v_col;var arr_header = new Array();var filterExpr = "",filterExprLen=0;for(v_col=1;v_col<=maxFilterCol;v_col++){filterExpr = dCell.GetCellString2(v_col,2,0).toUpperCase();filterExprLen = filterExpr.length;if( filterExprLen > 0 & filterExpr.indexOf("%") === filterExprLen-1 & filterExpr.lastIndexOf("%") === filterExprLen-1 ) { //模糊匹配:開頭固定filterExpr = "^"+filterExpr.replace(/%/g,"");filterExpr = new RegExp(filterExpr);} else if( filterExprLen > 0 & filterExpr.indexOf("%") === 0 & filterExpr.lastIndexOf("%") === 0 ) { //模糊匹配:結尾固定filterExpr = filterExpr.replace(/%/g,"")+"$";filterExpr = new RegExp(filterExpr);} else if( filterExprLen > 0 & filterExpr.indexOf("%") === 0 & filterExpr.lastIndexOf("%") === filterExprLen-1 ) { //模糊匹配:中間固定filterExpr = filterExpr.replace(/%/g,"");filterExpr = new RegExp(filterExpr);} else {}arr_header[v_col-1] = filterExpr;}var v_flag, v_value1, v_value2;for(v_row=3;v_row<rowCount;v_row++){v_flag = 0;for(v_col=1;v_col<=maxFilterCol;v_col++){v_value1 = arr_header[v_col-1];if(v_value1 == ""||text == "")continue;v_value2 = dCell.GetCellString(v_col,v_row,0).toUpperCase();/*if( v_value2.indexOf(v_value1) == -1 ){v_flag = 1;break;}*///如果精確查詢和模糊查詢都不匹配,則標記為隱藏//alert(v_value1 + " : " +v_value2);if ( v_value1.constructor === String & v_value1 !== v_value2 ) {v_flag = 1;break;} else if ( v_value1.constructor === RegExp & !(v_value1.test(v_value2)) ) {v_flag = 1;break;} else {}}if(v_flag == 1)dCell.SetRowHidden(v_row,v_row);elsedCell.SetRowUnHidden(v_row,v_row);}}}總結
以上是生活随笔為你收集整理的js 用正则表达式模仿SQL like % 的模糊匹配的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 59元起!联想新品发布会价格汇总来了 多
- 下一篇: MySQL engine/type类型I