In the background project, we need a lot of verification, some are brought by element-ui, some are written by ourselves: for example: preventing SQL injection, legal uir, case conversion, etc.
Therefore, create a new tool folder (utils) in the project and put these methods in validate.js:
One, commonly used validation js
Prevent SQL injection
export function stripScript(s) { //字符串格式化,防止SQL注入 var rs = ""; if (s != null && s != "" && s != undefined) { var pattern = new RegExp( "[`~!@#$^&*()=|{}';'\\[\\]<>?~!@#¥……&*()——|{}【】‘;”“'。、?]" ); rs = ""; for (var i = 0; i < s.length; i++) { rs = rs + s.substr(i, 1).replace(pattern, ""); } } else { rs = s; } return rs; }
URL legal verification
export function validateURL(textval) { const urlregex = /^(https?|ftp):\/\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\.(25[0-5]|2[0-4][0- 9 ] | 1 [ 0 - 9 ] { 2 } | [ 1 - 9 ]? [ 0 - 9 ])) { 3 } | ([a - zA - Z0 - 9 -] + \.) * [A - zA - Z0 - 9 -] + \. (Com | edu | gov | int | mil | net | org | biz | arpa | info | name | pro | aero | coop | museum | [a-zA-Z] { 2 })) ( : [ 0 - 9 ] +) * (\ / ($ | [a-zA-Z0- 9 .,? ' \\ + &% $ # = ~ _-] +)) * $ /; return urlregex.test (textval); }
Character case handling
/ * Lowercase letters * / export function validateLowerCase (str) { const reg = / ^ [az] + $ / ; return reg.test (str); } / * uppercase letters * / export function validateUpperCase (str) { const reg = / ^ [AZ] + $ / ; return reg.test (str); } / * Upper and lower case letters * / export function validateAlphabets (str) { const reg = / ^ [A-Za-z] + $ / ; return reg .test (str); }
E-mail verification
/** * validate email * @param email * @returns {boolean} */ export function validateEmail(email) { const re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3} \]) | (([a-zA-Z \ - 0 - 9 ] + \.) + [a-zA-Z] { 2 ,})) $ / ; return re.test (email); }
mobile phone number
/** * validate Phone * @param Phone * @returns {boolean} */ export function validatePhone(phoneNum) { const re = /^1[3456789]\d{9}/; return re.test(phoneNum); }
ID card
/** * validate idCard * @param idCard * @returns {boolean} */ export function validateIdCard(idCard) { const re = /(^\d{15}&)|(^\d{18})|(^\d{17}(\d|X|x)$)/; return re.test(idCard); }
Bank card number
/** * validate bank * @param bankNum * @returns {boolean} */ export function validateBank(bankNum) { const re = /^[0-9]{16,19}$/; return re.test(bankNum); }
2. Use in the project
On the page that requires verification :
import { validUsername, stripScript } from "@/utils/validate";
Then directly use :
let validateUsername = (rule, value, callback) => { value = stripScript (value); if (! validUsername (value)) { callback ( new Error ( " Enter the correct username " )); } else { callback () ; } };