浏览代码

fixed buy with '<{value}' as cell value while filtering with '<{value}'

Dustin Utecht 6 年之前
父节点
当前提交
f59d7537a7
共有 1 个文件被更改,包括 31 次插入24 次删除
  1. 31 24
      src/bootstrap-table.js

+ 31 - 24
src/bootstrap-table.js

@@ -1396,37 +1396,44 @@
             }
 
             if (typeof value === 'string' || typeof value === 'number') {
-              const largerSmallerEqualsRegex = /(?:(<=|=>|=<|>=|>|<)(?:\s+)?(\d+)?|(\d+)?(\s+)?(<=|=>|=<|>=|>|<))/gm
-              let matches = largerSmallerEqualsRegex.exec(s);
+              if (this.options.strictSearch) {
+                if ((`${value}`).toLowerCase() === s) {
+                  return true
+                }
+              } else {
+                const largerSmallerEqualsRegex = /(?:(<=|=>|=<|>=|>|<)(?:\s+)?(\d+)?|(\d+)?(\s+)?(<=|=>|=<|>=|>|<))/gm
+                let matches = largerSmallerEqualsRegex.exec(s);
+                let comperationCheck = false;
 
-              if (matches !== null) {
+                if (matches !== null) {
                   let operator = matches[1] || matches[5] + 'l'
                   let comperationValue = matches[2] || matches[3]
 
                   switch(operator) {
-                      case '>':
-                      case '<l':
-                          return Number.parseInt(value) > Number.parseInt(comperationValue);
-                      case '<':
-                      case '>l':
-                          return Number.parseInt(value) < Number.parseInt(comperationValue);
-                      case '<=':
-                      case '=<':
-                      case '>=l':
-                      case '=>l':
-                          return Number.parseInt(value) <= Number.parseInt(comperationValue);
-                      case '>=':
-                      case '=>':
-                      case '<=l':
-                      case '=<l':
-                          return Number.parseInt(value) >= Number.parseInt(comperationValue);
+                    case '>':
+                    case '<l':
+                      comperationCheck = Number.parseInt(value) > Number.parseInt(comperationValue);
+                      break;
+                    case '<':
+                    case '>l':
+                      comperationCheck = Number.parseInt(value) < Number.parseInt(comperationValue);
+                      break;
+                    case '<=':
+                    case '=<':
+                    case '>=l':
+                    case '=>l':
+                      comperationCheck = Number.parseInt(value) <= Number.parseInt(comperationValue);
+                      break;
+                    case '>=':
+                    case '=>':
+                    case '<=l':
+                    case '=<l':
+                      comperationCheck = Number.parseInt(value) >= Number.parseInt(comperationValue);
+                      break;
                   }
-              } else if (this.options.strictSearch) {
-                if ((`${value}`).toLowerCase() === s) {
-                  return true
                 }
-              } else {
-                if ((`${value}`).toLowerCase().includes(s)) {
+
+                if (comperationCheck || (`${value}`).toLowerCase().includes(s)) {
                   return true
                 }
               }