请教ios 子控件超出父控件match

蛙蛙请教:js里的match方法和exec方法的区别,有些晕,大家给解释一下原理
先来看第一段代码,这段代码用的是String对象的Match方法,能够弹出3个链接,说明正常匹配,但是里面的((.|\n)*?)和(.*?)我不知道有什么区别.&div id="div1"&&a href="qy.php?id=129"&&font color="#000000"&北京丰收葡萄酒有限公司 &/font&&/a&&a href="qy.php?id=130"&&font color="#000000"&中国长城葡萄酒有限公司、华夏葡萄酿酒有限公司 &/font&&/a&&a href="qy.php?id=132"&&font color="#000000"&中法合营王朝葡萄酿酒有限公司 &/font&&/a&&/div&&br&&SCRIPT LANGUAGE="JavaScript"&&!--var str = div1.innerHTML;var re& = new RegExp("&a[^&&]+?\&((.|\n)*?)&\/a&", "gi");var a = str.match(re);for(var i=0;i&a.i++){&alert(a[i]);}//--&&/SCRIPT&
再来看第二段儿程序,这里只弹出了两个对话框,而且最后一个弹出的是括号里匹配的内容.&div id="div1"&&a href="qy.php?id=129"&&font color="#000000"&北京丰收葡萄酒有限公司 &/font&&/a&&a href="qy.php?id=130"&&font color="#000000"&中国长城葡萄酒有限公司、华夏葡萄酿酒有限公司 &/font&&/a&&a href="qy.php?id=132"&&font color="#000000"&中法合营王朝葡萄酿酒有限公司 &/font&&/a&&/div&&br&&SCRIPT LANGUAGE="JavaScript"&&!--var str = div1.innerHTML;var re = /&a[^&&]+&(.*?)&\/a&/var a = re.exec(str)for(var i=0;i&a.i++){&alert(a[i]);}//--&&/SCRIPT& 这让小弟是很是纳闷儿,我想获取里面的129,130,132这些内容,还有那些链接的显示文本,就是那些汉字,弄的我好头大,真是的,后来经过"梦在流浪"的指点,写出了一下算法,总算是懂了一点正则表达式匹配的原理了,以前看过《javascript宝典》里讲的正则表达式匹配顺序和规律,都忘了。&div id="div1"&&a href="qy.php?id=129"&&font color="#000000"&北京丰收葡萄酒有限公司 &/font&&/a&&a href="qy.php?id=130"&&font color="#000000"&中国长城葡萄酒有限公司、华夏葡萄酿酒有限公司 &/font&&/a&&a href="qy.php?id=132"&&font color="#000000"&中法合营王朝葡萄酿酒有限公司 &/font&&/a&&/div&&br&&SCRIPT LANGUAGE="JavaScript"&&!--var str = div1.innerHTML;//alert(str);//这里你可以看到color="#000000"已经变成了color=#000000,没有了引号,所以再写表达式的时候要注意了.var re& = new RegExp("&a[^&&]+?\&((.|\n)*?)&\/a&", "gi");var a = str.match(re); //第一次搜索for(var i=0;i&a.i++){&&//alert("第一次搜索的完整匹配,包括括号里面的匹配部分\n"+a[i]);&&temp = a[i].match(/qy.php\?id=(\d+)/ig); //第二次搜索&//alert("第二次搜索的完整匹配,也就是href的引号中间的部分\n"+temp[0]);&alert("第二次搜索的匹配结果的括号中的部分,也就是链接的数字参数\n"+RegExp.$1);&temp = a[i].match(/&font[^&&]+?color=#000000\&(.*?)&\/font&/ig);&alert("第三次搜索的匹配结果的括号中部分,也就是链接的文本部分\n"+RegExp.$1);}//--&&/SCRIPT&顺便贴一下“梦在流浪给我的函数”&SCRIPT LANGUAGE="JavaScript"&var str1 = div1.innerHTML;var re = /&a[^&&]+&([^a]*?)&\/a&/var a = re.exec(str1);var b=re.exec(str1);var c=re.exec(str1);&alert(a[1]);&alert(b[1]);&alert(c[1]);&/SCRIPT&&
Views(...) Comments()比如父控件的宽度为设置为wrap_content,而子空间的宽度设置为fill_parent,不是自相矛盾了吗?
该问题被发起重新开启投票
投票剩余时间:
之前被关闭原因:
该问题被发起删除投票
投票剩余时间:
距离悬赏到期还有:
参与关闭投票者:
关闭原因:
该问题已经被锁定
锁定原因:()
保护原因:避免来自新用户不合宜或无意义的致谢、跟帖答案。
该问题已成功删除,仅对您可见,其他人不能够查看。
二者之间主要以wrap_content为主,也就是说它的权限值更大一些。当父控件为fill_parent,子控件为wrap_content时,仍然会以wrap_content为主,反之亦然。
若是子空间设置fill_parent那么这个属性就是无效的。应该会按照具体view实际宽度自适应,其实真正的值还是wrap_content。
程序完全可以运行,但是得出了四纵情况:当我们设置父控件的宽度属性为fill_parent:①子控件宽度为fill_parent:
②子控件宽度为wrap_content:
当我们设置父控件的宽度属性为wrap_content:A.子控件宽度为fill_parent:
B.子控件宽度为wrap_content:
可见:虽然二者并不矛盾但是对控件影响较大的是wrap_content,可能它的优先级更高吧!
不是您所需,查看更多相关问题与答案
德问是一个专业的编程问答社区,请
后再提交答案
关注该问题的人
共被浏览 (5990) 次后使用快捷导航没有帐号?
只需一步,快速开始
查看: 3025|回复: 8
请教一个关于javascript中match匹配()分组的问题
UID203593在线时间 小时积分2221帖子离线17300 天注册时间
银牌会员, 积分 2221, 距离下一级还需 779 积分
在php的正则匹配中可以通过()来分组获取数据
JS中我尝试通过这样的方法获取数据,如下:
var str = '?id=21&rid=4&page=5';
var test = str.match(/[&|?](.+?)=(.+?)&?/gim);
& & & &
alert(test[0]);& & //打印出?id=21&
alert(test[0][1]);& & //打印出i复制代码
显然test[0]返回的是一个字符串,而不是我要的数据,也就不能通过test[0][1]这样的方法获取到我要的数据。
请问在JS中有像PHP那样通过()分组的方式吗?
UID203593在线时间 小时积分2221帖子离线17300 天注册时间
银牌会员, 积分 2221, 距离下一级还需 779 积分
我将正则规则改了下,如下
var str = '?id=21&rid=4&page=5';
var test = /[&|?](.+?)=(.+?)&?/gim.exec(str);
alert(test[1]);复制代码
这样似乎能正常打印数组了,但是测试结果出现了几个问题:
1.匹配出来的是一个长度为3的数组,键值分别为?id=2,id,2
2.这样匹配就不贪婪了
3.返回回来的数组仍旧是一维数组,在多个参数的情况下,不方便我上面说的按照()分组去取特定的数据
UID203593在线时间 小时积分2221帖子离线17300 天注册时间
银牌会员, 积分 2221, 距离下一级还需 779 积分
继续修改代码,将惰性匹配的?去掉
var str = '?id=21&rid=4&page=5';
var test = url.match(/([^&?]+)=([^&?]*)/gim);
alert(test);复制代码
这次返回的数据是id=21,rid=4,page=5;返回的数据是正确了,但是不是我希望的二维数组
是JS本身没办法实现吗?
UID341738在线时间 小时积分6216帖子离线17300 天注册时间
可以大致模仿一下
String.prototype.pmatch = function(reg){
if( !(reg instanceof RegExp) || !reg.global ) return 0;
var a=[],b;
while(b=reg.exec(this)){
b.shift();
a.push(b);
return a.length&0?a:0;
var str = '?id=21&rid=4&page=5',
test = str.pmatch(/[&|?](.+?)=(.+?)(?:&|$)/gim);
alert(test[0]);
//打印出?id=21&
alert(test[0][1]);
alert(test[1]);
//打印出?id=21&
alert(test[1][1]);
&提示:您可以先修改部分代码再运行
UID203593在线时间 小时积分2221帖子离线17300 天注册时间
银牌会员, 积分 2221, 距离下一级还需 779 积分
原帖由 [i]hansir 于
22:12 发表
可以大致模仿一下
& & & & String.prototype.pmatch = function(reg){
& & & & & & & & if( !(reg instanceof RegExp) || !reg.global ) return 0;
& & & & & & & & var a=[],b;
& & & & & & & & while(b=reg.exec(this)){
& & & & & & & & & & & & b.shift();
& & & & & & & & & & & & a.push(b);
UID323880在线时间 小时积分1698帖子离线17300 天注册时间
银牌会员, 积分 1698, 距离下一级还需 1302 积分
js里稍微麻烦点
var str = '?id=21&rid=4&page=5', reg = /[&|?](.+?)=(.+?)/gi,
while(result = reg.exec(str)) alert(result[1]+':'+result[2])
&提示:您可以先修改部分代码再运行
UID341738在线时间 小时积分6216帖子离线17300 天注册时间
改进一下,在没有加修正符g的时候,只匹配一组
String.prototype.pmatch = function(reg){
& & & & if( !(reg instanceof RegExp)) return 0;
& & & & if( !reg.global ) {
& & & & & & & & var a = this.match(reg);
& & & & & & & & return a? [a.slice(1,a.length)] : 0;
& & & & var a=[],b;
& & & & while(b=reg.exec(this)){
& & & & & & & & b.shift();
& & & & & & & & a.push(b);
& & & & return a.length&0?a:0;
UID203593在线时间 小时积分2221帖子离线17300 天注册时间
银牌会员, 积分 2221, 距离下一级还需 779 积分
原帖由 [i]CNwander 于
22:22 发表
js里稍微麻烦点
var str = '?id=21&rid=4&page=5', reg = /[&|?](.+?)=(.+?)/gi,
while(result = reg.exec(str)) alert(result[1]+':'+result[2])
&提示:您可以先修改部分代码再运行
谢谢,我的做法和你差不多,我是这么写的
for (var i = 0; i & group. i++)
& & & & var row = group[i].split('=');
& & & & get[row[0]] = row[1]
UID203593在线时间 小时积分2221帖子离线17300 天注册时间
银牌会员, 积分 2221, 距离下一级还需 779 积分
原帖由 [i]hansir 于
22:26 发表
改进一下,在没有加修正符g的时候,只匹配一组
String.prototype.pmatch = function(reg){
& & & & if( !(reg instanceof RegExp)) return 0;
& & & & if( !reg.global ) {
& & & & & & & & var a = this.match(reg);
& & & & & & & & return a? [a.slice( ...
非常感谢!!
Powered by扫一扫关注官方微信
后使用快捷导航没有帐号?
请完成以下验证码
主题帖子里程
主题帖子里程
用了大玩家的方法很方便的弄了的金卡 本人是积分的新手 想请教如何用白板金卡match 的status? 5月底会在新西兰住一晚crown plaza 两晚ic 请大家给些建议 谢谢各位老大
主题帖子里程
主题帖子里程
直接用 1039这个 CODE 住一晚上成金卡吧 现在 的白金MATCH不了了。
主题帖子里程
主题帖子里程
白金 被玩坏了
主题帖子里程
主题帖子里程
暂时停掉了
主题帖子里程
主题帖子里程
晚了,早一个月还可以
主题帖子里程
主题帖子里程
已经暂停了哦
主题帖子里程
主题帖子里程
只能一夜金了。
主题帖子里程
主题帖子里程
好事都得早点出手
主题帖子里程
主题帖子里程
match不了阿!!
好积友,玩在裆下!XD~~
/?fromuser=Leon_MsHSs
主题帖子里程
主题帖子里程
这个也被玩坏了啊
社区QQ达人
使用QQ帐号登录论坛的用户
论坛达到10000用户活动奖励
常客园公众号
奢玩手机客户端
积友之家公众号
积友之家手机客户端本帖子已过去太久远了,不再提供回复功能。}

我要回帖

更多关于 user control 子控件 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信