一分耕耘一分識訓
文章目錄
- 前言
- 正則
- 判斷字串是否為慷訓者全為空格
- 小知識
- 百位符、千位符、萬位符
- 去除字串里所有空格
- 去除首尾空格
- 密碼正則
- 尾聲
前言
正則是一種神奇的魔法!
正則
此模塊會將js開發當中常用的正則運算式列舉出來
正則運算式(regular expression)描述了一種字串匹配的模式(pattern),可以用來檢查一個串是否含有某種子串、將匹配的子串替換或者從某個串中取出符合某個條件的子串等 ——
菜鳥教程
判斷字串是否為慷訓者全為空格
let pattern = /^[\s]*$/ // 匹配0個或多個空格,匹配成功回傳true
let str = ""
console.log(pattern.test(str)) // true
let str2 = " "
console.log(pattern.test(str2)) // true
let str3 = " test "
console.log(pattern.test(str3)) // false
小知識
需求跟業務邏輯是分開的,此運算式匹配0或多個空格,是純技術角度分析,對于面試的場景模擬,最好是使用此方法(純技術角度分析)進行解答,
百位符、千位符、萬位符
大資料時代為了更加美觀的展示資料,會采用分位符進行美化
// 百位符
function pattern(string) {
// 全域匹配以2的倍數結尾的前一個數字,改成 該數字+,
// $1匹配(\d)
return string.replace(/(\d)(?=(\d{2})+$)/g, "$1,")
}
console.log(pattern('100000')) // 10,00,00
// 千位符
function pattern1(string) {
// 全域匹配以3的倍數結尾的前一個數字,改成 該數字+,
return string.replace(/(\d)(?=(\d{3})+$)/g, "$1,")
}
console.log(pattern1('100000')) // 100,000
// 萬位符
function pattern2(string) {
// 全域匹配以4的倍數結尾的前一個數字,改成 該數字+,
return string.replace(/(\d)(?=(\d{4})+$)/g, "$1,")
}
去除字串里所有空格
這是最簡單的一個正則O(∩_∩)O
let str = " 2 22 2"
str = str.replace(/\s*/g,"") // 匹配0或多個空格,替換成空
console.log(str)
去除首尾空格
這其實可以通過 String.prototype.trim 來實作,但是遇到不兼容情況需要自己手寫運算式,
let str = " 1 11 1 "
str = str.replace(/^\s+|\s+$/g,"") //匹配開頭和結尾1個以上的空格,替換成空
console.log(str) //1 11 1
密碼正則
密碼運算式分很多情況,常見的有如下

由數字和字母組成,并且要同時含有數字和字母,且長度要在8-16位之間,
// 匹配由字母和數字組成的至少8位至多16位的字串
// 同時不能全是數字或字母
let pattern = /^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{8,16}$/
console.log(pattern.test("djspadjsaopd231")) // true

密碼包含 數字,英文,字符中的兩種以上,且長度要在8-16位之間
//匹配一段8-16位的字符,但是不能純由字符、大寫字母、小寫字母、數字匹配
let pattern = /^(?![0-9]+$)(?![a-z]+$)(?![A-Z]+$)(?!([^(0-9a-zA-Z)])+$).{8,16}$/
console.log(pattern.test("1222222D222d")) // true

尾聲
本文到這里就結束了,以后有新的發現還會補充,謝謝大家的用心觀看,O(∩_∩)O,

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/257771.html
標籤:其他
