??xml version="1.0" encoding="utf-8" standalone="yes"?>
也ؓ(f)了能够便于大家对正则表达式有一个更为综合和深刻的认识,我将一些关键点和容易犯p涂的地方再pȝȝ一下?
ȝ1Q附件参数g的用?
表达式加上参数g之后Q表明可以进行全局匚wQ注意这?#8220;可以”的含义。我们详l叙qͼ(x)
1Q对于表辑ּ对象的execҎ(gu)Q不加入gQ则只返回第一个匹配,无论执行多少ơ均是如此,如果加入gQ则W一ơ执行也q回W一个匹配,再执行返回第二个匚wQ依ơ类推。例?
var regx=/user\d/;
var str=“user18dsdfuser2dsfsd”;
var rs=regx.exec(str);//此时rs的gؓ(f){user1}
var rs2=regx.exec(str);//此时rs的g然ؓ(f){user1}
如果regx=/user\d/gQ则rs的gؓ(f){user1}Qrs2的gؓ(f){user2}
通过q个例子说明Q对于execҎ(gu)Q表辑ּ加入了gQƈ不是说执行execҎ(gu)可以返回所有的匚wQ而是说加入了g之后Q我可以通过某种方式得到所有的匚wQ这里的“方式”对于exec而言Q就是依ơ执行这个方法即可?
2Q对于表辑ּ对象的testҎ(gu)Q加入g于不加上g没有什么区别?
3Q对于String对象的matchҎ(gu)Q不加入gQ也只是q回W一个匹配,一直执行matchҎ(gu)也Lq回W一个匹配,加入gQ则一ơ返回所有的匚wQ注意这与表辑ּ对象的execҎ(gu)不同Q对于exec而言Q表辑ּ即加上了gQ也不会(x)一ơ返回所有的匚wQ。例如:(x)
var regx=/user\d/;
var str=“user1sdfsffuser2dfsdf”;
var rs=str.match(regx);//此时rs的gؓ(f){user1}
var rs2=str.match(regx);//此时rs的g然ؓ(f){user1}
如果regx=/user\d/gQ则rs的gؓ(f){user1,user2}Qrs2的g为{user1,user2}
4Q对于String对象的replaceҎ(gu)Q表辑ּ不加入gQ则只替换第一个匹配,如果加入gQ则替换所有匹配。(开头的三道试题能很好的说明这一点)
5Q对于String对象的splitҎ(gu)Q加上g与不加g是一L(fng)Q即Q?
var sep=/user\d/;
var array=“user1dfsfuser2dfsf”.split(sep);
则array的gؓ(f){dfsf, dfsf}
此时sep=/user\d/gQ返回值是一L(fng)?
6Q对于String对象的searchҎ(gu)Q加不加g也是一L(fng)?
ȝ2Q附加参数m的用?
附加参数mQ表明可以进行多行匹配,但是q个只有当用^?模式时才?x)v作用Q在其他的模式中Q加不加入m都可以进行多行匹配(其实说多行的字符串也是一个普通字W串Q,我们举例说明q一?
1Q用^的例?
var regx=/^b./g;
var str=“bd76 dfsdf
sdfsdfs dffs
b76dsf sdfsdf”;
var rs=str.match(regx);
此时加入g和不加入gQ都只返回第一个匹配{bd}Q如果regx=/^b./gmQ则q回所有的匚w{bd,b7}Q注意如果regx=/^b./mQ则也只q回W一个匹配。所以,加入m表明可以q行多行匚wQ加入g表明可以q行全局匚wQ综合到一起就是可以进行多行全局匚w
2Q用其他模式的例子Q例?
var regx=/user\d/;
var str=“sdfsfsdfsdf
sdfsuser3 dffs
b76dsf user6”;
var rs=str.match(regx);
此时不加参数gQ则q回{user3}Q加入参数gq回{user3,user6}Q加不加入mҎ(gu)没有影响?
3Q因此对于m我们要清楚它的用,C它只对^?模式起作用,在这两种模式中,m的作用ؓ(f)Q如果不加入mQ则只能在第一行进行匹配,如果加入m则可以在所有的行进行匹配。我们再看一个^的例?
var regx=/^b./;
var str=“ret76 dfsdf
bjfsdfs dffs
b76dsf sdfsdf”;
var rs=str.match(regx);
此时rs的gؓ(f)nullQ如果加入gQrs的g然ؓ(f)nullQ如果加入mQ则rs的gؓ(f){bj}Q也是_(d)在第一行没有找到匹配,因ؓ(f)有参数mQ所以可以l去下面的行L是否有匹配)Q如果m和g都加上,则返回{bj,b7}Q只加m不加g说明Q可以去多行q行匚wQ但是找C个匹配后p回,加入g表明多行中所有的匚wq回Q当然对于matchҎ(gu)是如此,对于exec呢,则需要执行多ơ才能依ơ返回)
ȝ3Q在HTML的textarea输入域中Q按一个Enter键,对应的控制字Wؓ(f)“\r\n”Q即“回R换行”Q而不?#8220;\n\r”Q即“换行回R”Q我们看一个前面我们Dq的例子Q?
var regx=/a\r\nbc/;
var str=“a
bc”;
var rs=regx.exec(str);
l果Q匹配成功,rs的gؓ(f)Q{ }Q如果表辑ּ?a\n\rbc/Q则不会(x)被匹配,因此在一般的~辑器中一?#8221;Enter”键代表着“回R换行”Q而非“换行回R”Q至在textarea域中是这L(fng)?/p>
EXT标准布局c?/p>
面板相当于一张干净的白U,如果直接在上面添加内容,很难控刉板中内容的显CZ|,面板元素多p昑־凌ؕQ所以需要在面板上划分不同的区域Q将面板内容展示到希望的位置上。ExtJS通过提供多种布局cL为面板提供支持,主要包括如下10U:(x) ?-4 配置?/p> 参数cd 说明 activeItem String/Number 一个对当前zdlg的引用。activeItem只在那些一ơ只能显CZ?items 目的布局中生效,例如QExt.layout.Accordion、Ext.layout.CardLayout、Ext.layout.FitLayout 2 3 ?-5 配置?/p> 参数cd 说明 activeOnTop Boolean 是否保持展开的子面板处于爉板的端Qtrue则交换当前展开面板到顶端,false则保持原来的位置不动?/p> animate Boolean 讄在展开或收~子面板时是否用滑动方式,true则采用滑动方式,默认为false?/p> fill Boolean 讄子面板是否自动调整高度充满父面板的剩余空_(d)true则充满,默认为true?/p> hideCollapse Tool Boolean 讄是否隐藏子面板的 “展开收羃” 按钮Qtrue表示隐藏Qfalse表示昄Q默认ؓ(f)false。如果设|ؓ(f)trueQ则应titleCollapse配置也为true?/p> titleCollapse Boolean 讄是否允许通过点击子面板的标题来展开或收~面板,true表示允许Q默认ؓ(f)true?/p>
//面板items配置w认的xtypecd为panelQ该默认值可以通过defaultType配置进行更?br />
?-11