××××××××××××××高分求一正则表达式×××××××××××× http://community.csdn.net/Expert/topic/5646/5646320.xml?temp=.830456这里也有,如果您能答对,两个贴所有分都归答对的人 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 仅仅正则无法做到,c:\sss\m.txt完全可以是一个文件夹路径。 to supNate(铅笔) :呵呵,你说的属于特殊情况,就算是,能给出你的答案么? c:\sss\m.txt正则又不能判断这是文件夹还是文件所以不可能有 一般情况下试试/(^[a-zA-Z]:(\\[^\/:*?"<>]+)+(\\)?$)|(^[.]*(\\[^\/:*?"<>]+)+(\\)?$)/g没测试过 改下/(^[a-zA-Z]:(\\[^\/:*?"<>]*)+(\\)?$)|(^[.]*(\\[^\/:*?"<>]+)+(\\)?$)/g to hbhbhbhbhb1021(天外水火(我要多努力)) :相对路径中普通用户想到的也就是\s\ss这样的,你列的情况是对程序开发比较熟悉的人才知道的所以你例举的不算,我希望作出的正则表达式认为你写的这两个是不合法的!to mingxuan3000(铭轩):我能想到的也就上面例举的几个\s,\s\s\,\s\s,c:\s,c:\s\这些都是合法的,本来打算不能出现类似\s.sss这样的形式,弄的好像是某个文件的名字样的,后来思前想后,还是去掉这个限制吧。 新的表达式要求1 针对的是文件夹的路径(包括相对和绝对路径,可能会存在文件夹的名称为s.text这样的情况,那么这种路径也属于合法;相对路径中针对的是\s\,\s这样的路径,而不是咱们程序开发经常用到的../,./这样的都属于非法!)2 路径必须是本机的路径(如果类似如下形式\\Server\s\则应属于非法路径的)3 文件名规则是不包含:\/:*?"<>|这些特殊字符的4 请给出正则表达式的老大,首先尽可能的自测下,起码符合我目前给的这几个条件!如果表达式还能过滤我没例举出来的条件,也请说明下! var reg = /^([a-z]:\\|\\?)?([^ \\\/:\*\?"<>\|][^\\\/:\*\?"<>\|]*\\?)+$/i; if(!reg.test(s)) alert('错误的路径名');根据LZ的要求写的 不知道有没有错误,反正我试的时候没试出来另外过滤了文件夹开头字母为空格的情况 if(!reg.test(s))s为你要验证的路径 to qf521lx() :没关系,感谢你的帮忙 var reg = /^([a-z]:\\|\\?)?([^ \.\\\/:\*\?"<>\|]([^\\\/:\*\x?"<>\|]*[^ \.\\\/:\*\?"<>\|])?\\?)+$/i; 不会吧 \(space)\ 在我这里没有出现异常啊 jimu8130兄弟,还是这样吧,如果楼上的兄弟们的正则不能满足要求的话,那整理一下都需要满足什么情况,这样列举出来效果会好些.刚才试了一下,文件夹上有些字符是不能写的,写上会报错,并且第一个字符是空格的话会被替换掉. 需要明确的一点是开头或结尾为空格或.的文件夹是不存在的如果你把文件夹路径直接打在windows窗口的地址栏内,开头或结尾如果有空格或.那么系统会自动清掉, 但是如果你用某个程序来打开可能会报错 to qf521lx():需要明确的一点是开头或结尾为空格或.的文件夹是不存在的如果你把文件夹路径直接打在windows窗口的地址栏内,开头或结尾如果有空格或.那么系统会自动清掉, 但是如果你用某个程序来打开可能会报错------我的程序当中,这个路径是由用户输入的(input type=text),所以用户并不知道,可能他只是误输入而已,但是程序得给出有效提示!我把你的正则去http://regexlib.com/RETester.aspx这里测试(以\(空格)\测试)并没有给出match或者nomatch的测试结果。to hbhbhbhbhb1021(天外水火(我要多努力)):我已经例举了主要的要求1 针对的是文件夹的路径(包括相对和绝对路径,可能会存在文件夹的名称为s.text这样的情况,那么这种路径也属于合法;相对路径中针对的是\s\,\s这样的路径,而不是咱们程序开发经常用到的../,./这样的都属于非法!)2 路径必须是本机的路径(如果类似如下形式\\Server\s\则应属于非法路径的)3 文件名规则是不包含:\/:*?"<>|这些特殊字符的至于其他的要求,比如刚刚和qf531lx讨论的\ \情况,我觉得这个是很明显的不合法的情况。在开发中,作为开发人员来说首先避免的是自己能想到的基本错误,然后在此基础满足用户或者特定环境下提出的附加要求(所以一开始我的要求并没有“文件名规则是不包含:\/:*?"<>|这些特殊字符的”) <html><head> <title>alert</title><script language="javascript">function isxml(s){ var reg = /^([a-z]:\\|\\?)?([^ \.\\\/:\*\?"<>\|]([^\\\/:\*\x?"<>\|]*[^ \.\\\/:\*\?"<>\|])?\\?)+$/i; if(!reg.test(s)) alert('错误的路径名');}</script></head><body>输入一个文件路径<input type="text" onblur="isxml(this.value)" /></body></html>//被你搞晕了~~ 我不知道我的到底有没有问题, 我也试了/ /的情况, 没事啊哎~匹配文件路径的正则也实在难写,看来以后正则的功底还得继续打啊~ <TEXTAREA id="ta" style="width:100%; height:100%">d:\windows\$ntservicepackuninstall$\reg01561booksh:h:\h:\setupfilesh:\virtualdiskh:\hdir.txth:\my favoritesh:\win98h:\flash\\:\mp3\西楚霸王h:\system volume information\_restore{7bda94da-b5f6-4bd0-9079-4fb1fee794e6}\rp82\h:\system volume information\_restore{7bda94da-b5f6-4bd0-9079-4fb1fee794e6}\rp82\</TEXTAREA><SCRIPT LANGUAGE="JavaScript"><!--var ar = ta.value;ar = ar.split("\r\n");ta.value = "";for(var i=0;i<ar.length;i++){ var reg = /^(([a-z]:(\\[^\\\/:\*\?"<>\|]+)*\\?)|(\\?[^\\\/:\*\?"<>\|]+(\\[^\\\/:\*\?"<>\|]+)*\\?))$/ig; ta.value += reg.test(ar[i])+"\t"+ar[i]+"\r\n";}//--></SCRIPT> extjs 不使用iframe有什么好的方法。 |zyciis| 如何监控一个checkbox的checked更改用onpropertychange的话在firefox中无效,谢谢 有代码 求助牛人!javascript怎样实现检查当前站点是不是可信站点? frame中表单提交的问题 请问一下我后面的数据如何写入数据库列 Oa 系统请假时间计算 怎么用JS生成随机验证码啊?(在线急等) 框架页间的链接问题!急! 各位高手帮帮忙:显示日期问题 为什么啊?不明白啊!有人碰到过吗?无原无故页面就消失了。大家帮我看看 求助! 在框架页面未加载完成前有没有办法让js停止执行?
呵呵,你说的属于特殊情况,就算是,能给出你的答案么?
正则又不能判断这是文件夹还是文件
所以不可能有
/(^[a-zA-Z]:(\\[^\/:*?"<>]+)+(\\)?$)|(^[.]*(\\[^\/:*?"<>]+)+(\\)?$)/g
没测试过
/(^[a-zA-Z]:(\\[^\/:*?"<>]*)+(\\)?$)|(^[.]*(\\[^\/:*?"<>]+)+(\\)?$)/g
相对路径中普通用户想到的也就是
\s\ss这样的,你列的情况是对程序开发比较熟悉的人才知道的
所以你例举的不算,我希望作出的正则表达式认为你写的这两个是不合法的!to mingxuan3000(铭轩):
我能想到的也就上面例举的几个
\s,\s\s\,\s\s,c:\s,c:\s\这些都是合法的,本来打算不能出现类似\s.sss这样的形式,弄的好像是某个文件的名字样的,后来思前想后,还是去掉这个限制吧。
1 针对的是文件夹的路径(包括相对和绝对路径,可能会存在文件夹的名称为s.text这样的情况,那么这种路径也属于合法;相对路径中针对的是\s\,\s这样的路径,而不是咱们程序开发经常用到的../,./这样的都属于非法!)
2 路径必须是本机的路径(如果类似如下形式\\Server\s\则应属于非法路径的)
3 文件名规则是不包含:\/:*?"<>|这些特殊字符的
4 请给出正则表达式的老大,首先尽可能的自测下,起码符合我目前给的这几个条件!如果表达式还能过滤我没例举出来的条件,也请说明下!
if(!reg.test(s))
alert('错误的路径名');
根据LZ的要求写的 不知道有没有错误,反正我试的时候没试出来
另外过滤了文件夹开头字母为空格的情况
s为你要验证的路径
没关系,感谢你的帮忙
如果你把文件夹路径直接打在windows窗口的地址栏内,开头或结尾如果有空格或.那么系统会自动清掉, 但是如果你用某个程序来打开可能会报错
需要明确的一点是开头或结尾为空格或.的文件夹是不存在的
如果你把文件夹路径直接打在windows窗口的地址栏内,开头或结尾如果有空格或.那么系统会自动清掉, 但是如果你用某个程序来打开可能会报错
------
我的程序当中,这个路径是由用户输入的(input type=text),所以用户并不知道,可能他只是误输入而已,但是程序得给出有效提示!我把你的正则去http://regexlib.com/RETester.aspx这里测试(以\(空格)\测试)并没有给出match或者nomatch的测试结果。to hbhbhbhbhb1021(天外水火(我要多努力)):
我已经例举了主要的要求
1 针对的是文件夹的路径(包括相对和绝对路径,可能会存在文件夹的名称为s.text这样的情况,那么这种路径也属于合法;相对路径中针对的是\s\,\s这样的路径,而不是咱们程序开发经常用到的../,./这样的都属于非法!)
2 路径必须是本机的路径(如果类似如下形式\\Server\s\则应属于非法路径的)
3 文件名规则是不包含:\/:*?"<>|这些特殊字符的
至于其他的要求,比如刚刚和qf531lx讨论的\ \情况,我觉得这个是很明显的不合法的情况。在开发中,作为开发人员来说首先避免的是自己能想到的基本错误,然后在此基础满足用户或者特定环境下提出的附加要求(所以一开始我的要求并没有“文件名规则是不包含:\/:*?"<>|这些特殊字符的”)
<head>
<title>alert</title>
<script language="javascript">
function isxml(s){
var reg = /^([a-z]:\\|\\?)?([^ \.\\\/:\*\?"<>\|]([^\\\/:\*\x?"<>\|]*[^ \.\\\/:\*\?"<>\|])?\\?)+$/i;
if(!reg.test(s))
alert('错误的路径名');
}
</script>
</head>
<body>
输入一个文件路径
<input type="text" onblur="isxml(this.value)" />
</body>
</html>
//被你搞晕了~~ 我不知道我的到底有没有问题, 我也试了/ /的情况, 没事啊
哎~匹配文件路径的正则也实在难写,看来以后正则的功底还得继续打啊~
d:\windows\$ntservicepackuninstall$\reg01561
books
h:
h:\
h:\setupfiles
h:\virtualdisk
h:\hdir.txt
h:\my favorites
h:\win98
h:\flash\\
:\mp3
\西楚霸王
h:\system volume information\_restore{7bda94da-b5f6-4bd0-9079-4fb1fee794e6}\rp82\
h:\system volume information\_restore{7bda94da-b5f6-4bd0-9079-4fb1fee794e6}\rp82\</TEXTAREA>
<SCRIPT LANGUAGE="JavaScript">
<!--
var ar = ta.value;
ar = ar.split("\r\n");
ta.value = "";for(var i=0;i<ar.length;i++){
var reg = /^(([a-z]:(\\[^\\\/:\*\?"<>\|]+)*\\?)|(\\?[^\\\/:\*\?"<>\|]+(\\[^\\\/:\*\?"<>\|]+)*\\?))$/ig;
ta.value += reg.test(ar[i])+"\t"+ar[i]+"\r\n";
}
//-->
</SCRIPT>