求正则表达式,在线等!!!

系统安装、升级讨论
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
头像
kofshower
帖子: 1343
注册时间: 2007-03-13 11:23
联系:

#16

帖子 kofshower » 2008-08-05 18:01

jerry_zhou 写了:kofshower
是不是我说的不够明白

我的意思是我要验证一个URL的合法

其次就是在这URL中不能带协议和参数
如果这2个有一个有的话,那么这个URL就不是合法的.
合法的为:
www.baidu.com
www.baidu.com/sss/fff/s.jsp
192.168.1.1:8080/sss/sss/ss.jsp
reseller.yahoo.com:8080/reseller
reseller.yahoo.com:8080/reseller/222/index.jsp
我明白你说的合法的.可是我明白你说:
www.baidu.com/sss?ss=ss没有过
这不是不应该为合法么
因为后面带参数
"We are all in the mud, but some of us are looking at the stars." (Oscar Wilde)
We are not born for ourselves.
人生天地间,并非为自己
Homepage:http://sites.google.com/site/polarisnotme/
jerry_zhou
帖子: 52
注册时间: 2008-07-27 11:36
联系:

#17

帖子 jerry_zhou » 2008-08-05 18:02

kofshower

对, 带有参数就不合法, 这是我的要求.
不能让输入的URL带参数.
头像
kofshower
帖子: 1343
注册时间: 2007-03-13 11:23
联系:

#18

帖子 kofshower » 2008-08-05 18:21

代码: 全选

^([-\d\w]+[.:])+[-\w]+/*[- ./%\w]*$
前面没看是验证合法性,我随手写的脚本写成从中trait出所需要的部分来了
"We are all in the mud, but some of us are looking at the stars." (Oscar Wilde)
We are not born for ourselves.
人生天地间,并非为自己
Homepage:http://sites.google.com/site/polarisnotme/
jerry_zhou
帖子: 52
注册时间: 2008-07-27 11:36
联系:

#19

帖子 jerry_zhou » 2008-08-06 9:15

kofshower
这个还是不行的. 呵呵
wesin
帖子: 4
注册时间: 2007-06-19 11:05

#20

帖子 wesin » 2008-08-06 9:49

代码: 全选

^([^:/]+\.)?([\w]+)((\.[\w]{2,4}$)|(\.[\w]{2,4}\/[^?]+))
jerry_zhou
帖子: 52
注册时间: 2008-07-27 11:36
联系:

#21

帖子 jerry_zhou » 2008-08-06 9:53

wesin
不行哦,
www.baidu.com 应该是匹配才对.
但是你的就不认为他不匹配
wesin
帖子: 4
注册时间: 2007-06-19 11:05

#22

帖子 wesin » 2008-08-06 10:02

怎么我试了可以呢,你把那:/?前面加个\看看呢
jerry_zhou
帖子: 52
注册时间: 2008-07-27 11:36
联系:

#23

帖子 jerry_zhou » 2008-08-06 10:21

wesin
可能你理解我的意思错了.

我的意思是要验证这个URL是不是合法, 首先要合法, 在合法的基础上 如果说这个URL还带有协议和参数的话,那也算是错的了.
头像
jarlyyn
帖子: 4671
注册时间: 2006-04-12 18:54
联系:

#24

帖子 jarlyyn » 2008-08-06 10:27

代码: 全选

([^?*/\^<>"'@!]+\.)*[^?*/\^<>"'@!]+\.[^?*/\^<>"'@!]+(/[^?*/\^<>"'@!]+)*?(/([^?^*/\<>"'@!]*))?
网址中对应都可以抓出来
jerry_zhou
帖子: 52
注册时间: 2008-07-27 11:36
联系:

#25

帖子 jerry_zhou » 2008-08-06 10:31

jarlyyn
你的这个正则表达式都不能经过检测
wesin
帖子: 4
注册时间: 2007-06-19 11:05

#26

帖子 wesin » 2008-08-06 11:02

:( 你是用什么检测的。。
头像
jarlyyn
帖子: 4671
注册时间: 2006-04-12 18:54
联系:

#27

帖子 jarlyyn » 2008-08-06 11:04

jerry_zhou 写了:jarlyyn
你的这个正则表达式都不能经过检测
有些检测的,比如kregexp

不能检测出*?是什么东西

代码: 全选


([^?*/\^<>"'@!]+\.)*[^?*/\^<>"'@!]+\.[^?*/\^<>"'@!]+(/[^?*/\^<>"'@!]+)*(/([^?^*/\<>"'@!]*))? 

你检测这个就可以了

本来那个里有个*?是为了正确的抓网址内容用的,懒惰匹配
jerry_zhou
帖子: 52
注册时间: 2008-07-27 11:36
联系:

#28

帖子 jerry_zhou » 2008-08-06 14:10

wesin
我用JS来检测的

代码如下

function validationURL(str) {
var strReg = '([^?*/\^<>"'@!]+\.)*[^?*/\^<>"'@!]+\.[^?*/\^<>"'@!]+(/[^?*/\^<>"'@!]+)*?(/([^?^*/\<>"'@!]*))?';
var re=new RegExp(strReg);
if (re.test(str)) {
alert("true");
} else {
alert("false");
}

}


在这中间,JS会认为你的表达式有错误.
头像
kofshower
帖子: 1343
注册时间: 2007-03-13 11:23
联系:

#29

帖子 kofshower » 2008-08-06 14:15

你的要求我是测试过的(使用语言ruby),这几个样本有什么不妥么,还是js的正则式有什么不同,我有几年没用js了
附件
2008-08-06-141447_560x141_scrot.png
上次由 kofshower 在 2008-08-06 14:23,总共编辑 1 次。
"We are all in the mud, but some of us are looking at the stars." (Oscar Wilde)
We are not born for ourselves.
人生天地间,并非为自己
Homepage:http://sites.google.com/site/polarisnotme/
jerry_zhou
帖子: 52
注册时间: 2008-07-27 11:36
联系:

#30

帖子 jerry_zhou » 2008-08-06 14:20

kofshower
能把你的结果告诉我吗?
按照你图片显示的顺序,和我的需求
结果应该是 :
true
true
true
true
true
false
false
false
回复