*******第八天******
回顧正則:
1:操作字符串,規(guī)則
2:正則表達(dá)式:因為方便效率極高
弄一正則:new RegExp('規(guī)則','選項');
I:表示忽略大小寫
m:表示多行模式
g:表示全局
/規(guī)則/選項:列如/\d/img
str.search(/\d/); //搜索
1:如果找到,返回什么第一個找到的位置
2:如果找不到,返回-1,
indexOf
str.match(/\d/); //匹配
1:如果匹配上爹梁,返回的是數(shù)組
2:否則搀别,null
str.replace('str1','str2');
//只替換第一個怕享,
如果不配合正則來使用执赡,replace--廢物
var regx = /\d/;
regx.test(str); //能匹配上,返回true函筋,否則 返回false
特性:
懶:只找一次 /g
蠢:數(shù)字例子沙合,把數(shù)字都切開了, +
貪:如果有匹配的跌帐,一直找下去[]:
1)表示或的意思[123] 1或2或3[abc12de]
2)也可表示范圍[a-zA-Z0-9]
3)表示排除[]
修飾:行首使用^首懈,行尾使用$
量詞:
{}
{n} n個
{n,m} 最少n個,最多m個{n,}最少n個,最多不限
{0,1}最少0個谨敛,最多1個----- ? --可有可無
{1,} 最少1個究履,最多不限 ----- +
{0,} 最少0個,最多不限
. 點(diǎn) 所有的字符
轉(zhuǎn)義:
\n 換行
\d 數(shù)字
\
\\ \
\w 字母脸狸,數(shù)字最仑,下劃線_
\d 數(shù)字
\s 空白
tab空格 換行
\W
\D
\S 相反的
或:|| 正則:里或要使用單個的豎杠 |
使用正則轉(zhuǎn)換漢字:
unicode: 4e00 - 9fa5
\u4e00-\u9fa5
var regx = /[\u4e00-\u9fa5]+/g;
網(wǎng)址:
www.baidu.com
www.sina.com.cn
12306.cn
http://www.baidu.com
https://www.baidu.com
news.baidu.com
news.163.baidu.com
使用正則分段:
1》協(xié)議:(https?:\/\/)?
2》多級域名:([a-z0-9-]+\.)*
3》域名:[a-z0-9-]+
4》后綴:(\.[a-z]{1,20}){1,2}
想用正則去匹配字符串:
1)分段
2)把每一段用正則匹配
3)把分開的正則連起來
捕獲分組:( )
非捕獲分組:(?:)
貪婪:
量詞:+ ? * {n} {n,m} {n,}
惰性:
量詞 + ? +? ?? *? {n}? {n,m}? {n,}?
邊界:使用\b來表示
用符串的形式來造正則時: b [ {用兩個 \ 來轉(zhuǎn)義
new RegExp('\b\[\{')
模塊化:
傳統(tǒng)方式下,引多個js文件:
1) 必須人工一個一個引用炊甲;
2)多個js文件之間泥彤,會有依賴
3)有可能產(chǎn)生變量沖突
解決辦法---模塊化
兩個JS庫: seaJs requireJs
*官網(wǎng):
http://requirejs.org/
使用requireJs,可以解決的問題:
1)不用手動引js文件了
2)解決了多個js文件間的依賴問題
3)解決了變量沖突問題
4)異步加載,js,避免了在加載JS過程中蜜葱,阻塞頁面渲染一個JS文件就是一個模塊全景。
1:如何定義模塊:定義: define
2:如何使用模塊:
require(['js/a','','']);
require(['js/vv1','js/vv2'],function(mod1,mod2){
alert(mod1);
alert(mod2);
});
// 回調(diào)函數(shù)中的
mod1,mod2耀石,和咱們引入的模塊是一一對應(yīng)的關(guān)系牵囤。
在一個模塊里引入其它模塊:
1)define(['js/vvv1','js/vvv2'],function(m1,m2){
。滞伟。揭鳞。。
}
2)define(function(require){
var m1 = require('js/vvv1');
var m2 = require('js/vvv2');
}