求正则:如果字符串的前11位没有:就在字符串前添加http://
求正则:
如果str的前11位没有:(冒号)
就在str前添加http://
问题点数:100、回复次数:13Top
1 楼meizz(梅花雪)回复于 2005-04-01 08:40:15 得分 0
if (/^[^:]{11}/.test(str)) str = "http://"+ strTop
2 楼aiiiq(外星人木有小JJ)回复于 2005-04-01 09:08:44 得分 0
谢谢版主,我的理解:
// ^从头开始查找,[^:]不是冒号的字符,{11}查找前11位;
// 如果不是冒号,找下一位;
// 如果找到冒号,返回false;
// 如果前11位都没有冒号,返回true;并执行if语句,字符串前加http://
// ^位置
// [^:]条件
// {11}范围
Top
3 楼meizz(梅花雪)回复于 2005-04-01 09:23:18 得分 0
rightTop
4 楼aiiiq(外星人木有小JJ)回复于 2005-04-01 09:58:51 得分 0
meizz:
有个问题,当str小于11位时(str='111')会出错!怎么办呢?Top
5 楼meizz(梅花雪)回复于 2005-04-01 10:04:05 得分 0
str 位长小于11 时, if 的条件判断是 false 不会加 http:// 我测试没有问题呀.Top
6 楼samboy2002(六道轮回)回复于 2005-04-01 10:10:20 得分 10
if (/^[^:]{1,11}/.test(str)) str = "http://"+ str
如果小于11位也可以这样加http://
不知道是不是你想要的。呵呵。
Top
7 楼aiiiq(外星人木有小JJ)回复于 2005-04-01 10:30:11 得分 0
samboy2002(?) :
好象不行啊,
如果是str='123:'
会返回http://123:
我希望返回123:不变,因为str的前11位已经有冒号了。Top
8 楼aiiiq(外星人木有小JJ)回复于 2005-04-01 11:42:21 得分 0
<script>
str='123:' //返回123:
str='11:111111111111' //返回11:111111111111
str=':' //返回:
str='aaaaaaaaaaa' //返回http://aaaaaaaaaaa
str='123' //返回http://123
str='' //返回http://
str='222222222222:22' //返回http://222222222222:22
str=str+'abcdefghijk' // 首先补充11位字符,以免长度不够出错
if(/^[^:]{11}/.test(str)) str = 'http://' + str
// ^从头开始查找,[^:]不是冒号的字符,{11}查找前11位;
// 如果不是冒号,找下一位;
// 如果找到冒号,返回false;
// 如果前11位都没有冒号,返回true;并执行if语句,字符串前加http://
str = str.substr(0,str.length-11) // 最后减掉后11位字符
alert(str) //测试
</script>
没办法自己写,达到目的,但不理想。
Top
9 楼meizz(梅花雪)回复于 2005-04-01 11:57:59 得分 87
if(str.indexOf(":")==-1 || str.indexOf(":")>=11)
str = 'http://' + str
//换一种条件判断就OK了Top
10 楼zelloss(不能成为机器!)回复于 2005-04-01 14:44:46 得分 1
顶楼上的,性欲好高啊Top
11 楼sakura8sakura(ouyangrui)回复于 2005-04-01 15:02:03 得分 1
UPTop
12 楼wxylvmnn(城隍庙三当家的)回复于 2005-04-01 15:32:08 得分 1
liudaliudaTop
13 楼aiiiq(外星人木有小JJ)回复于 2005-04-01 18:03:19 得分 0
thanksTop




