字面意思理解正則表達式
我的理解數組
var str = '(:match_product_num-1)*30'
複製代碼
工具表明 test()、search()、replace()、match()、split()bash
test()函數
正則表達式.test(str)工具
根據返回結果能夠利用test()方法來作爲判斷條件ui
var str = '374829348791';
var re = /\D/; // \D表明非數字
if ( re.test(str) ) {
// 返回true,表明在字符串中找到了非數字。
console.log('不全是數字');
} else {
console.log('全是數字');
}
複製代碼
search()spa
字符串.search(正則表達式)3d
根據返回結果能夠利用search()方法來查找某一個字符在字符串中的位置code
var str = 'abcdef';
// i——ignore(正則中默認是區分大小寫的
// 若是不區分大小寫的話,在正則的最後加標識 i )
var re = /B/i;
console.log( str.search(re) );
複製代碼
match()字符串
字符串.match(正則表達式)
例子:在下列字符串中找出指定格式的全部數字,以下找到 123,54,33,879
var str = 'haj123sdk54hask33dkhalsd879';
var re = /\d+/g;
var result = str.match(re)
console.log (result)
// [123,54,33,879]
複製代碼
replace()
字符串.replace(正則表達式,新的字符串/回調函數)
例子:敏感詞過濾,好比 我愛北京天安門,天安門上太陽升。------我愛*****,***上太陽升。 即北京和天安門變成號,
var str = "我愛北京天安門,天安門上太陽升。";
var re = /北京|天安門/g;
var str2 = str.replace(re,'*');
console.log (str2)
//我愛**,*上太陽升
複製代碼
顯然上面不符合要求
var str = "我愛北京天安門,天安門上太陽升。";
var re = /北京|天安門/g;
var str2 = str.replace(re,function(str){
console.log(str); // 北京 天安門 天安門
var result = '';
for(var i=0;i<str.length;i++){
result += '*';
}
return result; //因此搜索到了幾個字就返回幾個*
});
console.log (str2)
//我愛*****,***上太陽升
複製代碼