From 77ec79eb5e483a59157dff9b4fd75159e2fa132e Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期五, 17 四月 2020 14:48:43 +0800
Subject: [PATCH] 2020-04-17

---
 src/utils/utils.js |   44 ++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 42 insertions(+), 2 deletions(-)

diff --git a/src/utils/utils.js b/src/utils/utils.js
index 39c4111..f93eb25 100644
--- a/src/utils/utils.js
+++ b/src/utils/utils.js
@@ -51,6 +51,43 @@
   }
 
   /**
+   * @description sql璇硶楠岃瘉
+   * @return {String}  sql    sql璇彞
+   * @return {String}  type   楠岃瘉绫诲瀷
+   */
+  static verifySql (sql, type) {
+    if (!sql) return ''
+    let chars = [
+      {key: 'create', reg: '(^|\\s)create\\s'},
+      {key: 'insert', reg: '(^|\\s)insert\\s'},
+      {key: 'delete', reg: '(^|\\s)delete\\s'},
+      {key: 'update', reg: '(^|\\s)update\\s'},
+      {key: 'set', reg: '(^|\\s)set\\s'},
+      {key: 'drop', reg: '(^|\\s)drop\\s'},
+      {key: 'alter', reg: '(^|\\s)alter\\s'},
+      {key: 'truncate', reg: '(^|\\s)truncate\\s'},
+      {key: 'if', reg: '(^|\\s)if\\s'},
+      {key: 'exec', reg: 'exec'},
+      {key: 'OBJECT', reg: 'OBJECT'},
+      {key: 'sys.', reg: 'sys.'},
+      {key: 'kill', reg: 'kill'},
+    ]
+
+    if (type === 'customscript') {
+      chars = chars.map(char => !['insert', 'delete', 'update', 'set', 'if', 'exec'].includes(char.key))
+    }
+
+    let error = ''
+    chars.forEach(char => {
+      if (!error && new RegExp(char.reg, 'ig').test(sql)) {
+        error = char.key
+      }
+    })
+
+    return error
+  }
+
+  /**
    * @description sql鍔犲瘑
    * @return {String}  value
    */
@@ -158,6 +195,7 @@
     }]
 
     if (!isUnFormat) { // 鍔犲瘑
+      value = value.replace(/\n/ig, ' \n ')
       // 鏇挎崲鍏抽敭瀛�
       format.forEach(item => {
         let reg = new RegExp('(^|\\s)' + item.key + '(\\s|$)', 'ig')
@@ -166,7 +204,7 @@
   
       // 1銆佹浛鎹�%绗︼紙鏁版嵁搴撲腑瑙f瀽鍚巗ql鎶ラ敊锛�
       value = value.replace(/%/ig, ' mpercent ')
-  
+
       // 1銆乪ncode缂栫爜锛堜腑鏂囧瓧绗﹁秴鍑篵ase64鍔犲瘑鑼冨洿锛夛紝2銆乥ase64鍔犲瘑
       value = window.btoa(window.encodeURIComponent(value))
   
@@ -181,13 +219,15 @@
         value = window.atob(value)
         value = value.replace(salt, '')
         value = window.decodeURIComponent(window.atob(value))
+
         value = value.replace(/\smpercent\s/g, '%')
 
         format.forEach(item => {
           let reg = new RegExp(item.value, 'g')
           value = value.replace(reg, ' ' + item.key + ' ')
         })
-        
+
+        value = value.replace(/\s\n\s/ig, '\n')
         value = value.replace(/(^\s+|\s+$)/ig, '')
       } catch {
         console.warn('UnFormat Failure')

--
Gitblit v1.8.0