正規表示式案例

2021-09-08 06:56:38 字數 2854 閱讀 8466

案例一我們將把所有的雙引號替換單引號:

解析匹配了乙個"中加除了引用的除了「以外的東西",用'$1'代替,在這裡$1就是([^"]*)

name = '"a", "b"';

console.log(name.replace(/"([^"]*)"/g, "'$1'"));

[^"]除了引號以外的所有數

//案例二 我們將把字串中所有單詞的首字母都轉換為大寫:

方法一:找到aaa或bbb吧aaa替換為aaa

name = 'aaa bbb ccc';

var rep = /(\w)+/g

var str = name.replace(rep,function(word,$1))

console.log(str)

//aaa bbb ccc 為什麼是中間會有空格明明我們沒寫空格,為什麼呢?哦因為他只是替換了一些文字那些空格孩子那個地方是沒有改變的

方法二:找到單詞的邊界a,b,c把他們替換為a,b,c

name = 'aaa bbb ccc';

var rep = /\b(\w)/g;

var str = name.replace(rep, function(word,$1))

console.log(str);

案例三:給乙個連字串例如:get-element-by-id轉化成駝峰形式。

方法一$1等於-;$2等於\w+,直接用首字母大寫的更改好的\w+替換原來匹配我們的rep就可以了

var str = "get-element-by-id";

var rep = /(-)(\w+)/g;

var da = str.replace(rep,function(word,$1,$2))

console.log(da); //getelementbyid

方法二:直接找到-w吧他這個字串slice剪下在把那個剪下後的值變大

這個題目我是自己先寫了一遍用的上面的方法,在看的答案!我透,還可以這樣,我終於知道slice的厲害的地方了呵呵

var str = "get-element-by-id";

var reg = /-\w/g; // 匹配橫桿以及之後的乙個字元,全域性匹配

console.log(str.replace(reg, function($0) ));

案例四:匹配一年中的12個月

解析:主要凸顯了個分類中的(|)的用法和^$的用法

// var str = "04";

// var str2 = "12";

// var str3 = "aa12";

// var reg = /^(0[1-9]|1[1-2])$/

// console.log(reg.test(str));//true

// console.log(reg.test(str2));//true

// console.log(reg.test(str3));//false 應為必須是^$中的那幾個數

案例五:分割數字每三個以乙個逗號劃分

解析:解析找到那三個數並且用那三個數加以個,給其替換

var str = "12345678901";

var reg = /\d/g;

var da = str.replace(reg,function(word))

console.log(da);

案例六最難的來了

先寫乙個量詞的用法

?=n匹配任何其後緊接指定字串 n 的字串。

?!n匹配任何其後沒有緊接指定字串 n 的字串。

解析:匹配乙個is後面跟的是空格加all;

當問號前面什麼都沒寫的時候代表空的位置:對其後緊跟 " all" 的 "is" 進行全域性搜尋:大家看到這個匹配任何嗎?就是把所有符合的都會找到(一般這個用發都是找"",除非?前面有字母如下的is就是說is後面有" all",沒is就是" all"前面的"")

var str="is this all there is";

var patt1=/is(?= all)/g;

console.log(str.match(patt1));

好來了:科學小數點從後往前3個數打乙個點,看的和案例五一樣其實不一樣乙個從前乙個從後

var str = "100000000000000";

var reg = /(?=(\b)(\d)+$)/g; //有乙個空(什麼都沒寫就是空)後面不是單詞邊界且跟的是從末尾開始是3的倍數字置,的所有可能因為?=n會找全域性,全部的

var da = str.replace(reg,function(word,$1))

console.log(da);

為什麼要\b 因為可能會在最前面出現打點

好了我把我開始的錯誤想法寫一下

var str = "100000000000000";

var reg = /(\b)(\d)+$/g; //

var da = str.replace(reg, function (word) )

console.log(da); 100.000000000000

這裡返回的永遠是為什麼呢因為正則匹配的有乙個原則就貪婪匹配當出現+,*,?的時候當我有條件多匹配的時候就我盡可能的多匹配(只出現一次)而不是說把所有的可能都返回出來,所以這個就是與有沒有用?=n的區別,?=n會把所有可能全部返回出來

正規表示式 個人積累的正規表示式案例

1。正則匹配輸入框只能輸入浮點數 確保輸入框內輸入的只能是浮點數 value value.replace d.g,includes value.replace d.g,substr value.replace d.g,indexof 1 includes value.replace d.g,subs...

JS 正規表示式案例

size small b 正規表示式案例 b size b size x large 1 數字 size b d 非負整數 正整數 0 1 9 0 9 正整數 d 0 非正整數 負整數 0 0 9 1 9 0 9 負整數 d 整數 d d 非負浮點數 正浮點數 0 0 9 0 9 1 9 0 9 0...

python正規表示式案例

import re 使用者名稱 user a za z0 9 user1 ae12349re result re.match user,user1 if result print 匹配 else print 不匹配 密碼pwd w w pwd1 1se567 result1 re.match pwd...