CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
英特尔®游戏设计大赛100美元现金周周送 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Web 开发 >  JavaScript

正则表达式(fason帮忙)帮UP的有分。200分(分要的话还有,但问题要解决)

楼主renaski(洛林)2003-11-03 10:47:43 在 Web 开发 / JavaScript 提问

1。       /^http:\/\/.+$/  
              这个+号有什么用?  
  2。       /[   -~]/是不代表全体的字母啊包括数字?  
  3。       贪婪的,和非贪婪的表达式是怎么用的?  
  4。       (.*?)和(*.+)  
              经常用到,我解释不通啊!?他的用途是字符串,但是什么样的字符串啊?  
  5。       /(\w+):\/\/([^/:]+)(:\d*)?([^#   ]*)/  
              中的‘?’是有什么用?还有([^/:]+)总的‘+’为什么不能换成*  
              最后的([^#   ]*)总的‘*’可不可以换成+  
  6。       为什么说[^x]中不能是x字符串? 问题点数:100、回复次数:18Top

1 楼xinyunyishui(心云意水)回复于 2003-11-03 11:10:24 得分 98

1。       /^http:\/\/.+$/  
              这个+号有什么用?  
  +表示一个或多个,.表示出了换行外的所有单个字符,连起来就是一个或多个出了换行外的所有单个字符  
  2。       /[   -~]/是不代表全体的字母啊包括数字?  
  表示除了中文以外的东西。  
  3。       贪婪的,和非贪婪的表达式是怎么用的?  
  eg:"ppp".match(/p+/)返回ppp,"ppp".match(/p+?/)返回p  
  4。       (.*?)和(*.+)  
              经常用到,我解释不通啊!?他的用途是字符串,但是什么样的字符串啊?  
  (.*?)表示贪婪匹配0个或多个出了换行外的所有单个字符,可是(*.+)这个没见过……  
  6。       为什么说[^x]中不能是x字符串?  
  [^x]表示除了中括号中出现的东西以外的所有。Top

2 楼renaski(洛林)回复于 2003-11-03 11:11:26 得分 0

7。       <input   type=text   class=colorBorderb   name=num   size=4   ID="Text1"   onkeyup="value=value.replace(/[^0-9.+-]+/g,'')">  
  里面的‘+’号有什么用啊?好像可有可无的。Top

3 楼xinyunyishui(心云意水)回复于 2003-11-03 11:13:29 得分 0

ps:  
  5。       /(\w+):\/\/([^/:]+)(:\d*)?([^#   ]*)/  
              中的‘?’是有什么用?还有([^/:]+)总的‘+’为什么不能换成*  
   
  这个根本就是错的Top

4 楼xinyunyishui(心云意水)回复于 2003-11-03 11:15:05 得分 0

7。       <input   type=text   class=colorBorderb   name=num   size=4   ID="Text1"   onkeyup="value=value.replace(/[^0-9.+-]+/g,'')">  
  里面的‘+’号有什么用啊?好像可有可无的。  
   
  人家要过滤+号就是有用。这要看写代码的人的需要Top

5 楼renaski(洛林)回复于 2003-11-03 11:24:44 得分 0

#6。[^x]不是中的^的解释:<quote>匹配输入字符串的开始位置。如果设置了   RegExp   对象的   Multiline   属性,^   也匹配   '\n'   或   '\r'   之后的位置。</quote>那么也就是说“^”是字符串开始的位置,那么象"x   jss   jkdxjdk   xdd   "中的x也就可以匹配了呀。  
   
  #4。(.*?)表示贪婪匹配0个或多个出了换行外的所有单个字符  
  .是匹配除   "\n"   之外的任何单个字符,*匹配前面的子表达式零次或多次  
  2个加在一起为什么就成了,能不能举个列子匹配什么东东。  
   
  #2。     /[   -~]/等于?/[\w]/Top

6 楼renaski(洛林)回复于 2003-11-03 11:29:06 得分 0

#5。<quote>  
  在replace   方法中使用   $1   来引用所保存的第一个子匹配。如果有多个子匹配,则可以用   $2,   $3   等继续引用。  
   
  后向引用的另一个用途是将一个通用资源指示符   (URI)   分解为组件部分。假定希望将下述的URI   分解为协议   (ftp,   http,   etc),域名地址以及页面/路径:  
   
  http://msdn.microsoft.com:80/scripting/default.htm  
  下面的正则表达式可以提供这个功能。对   JScript,为:  
   
  /(\w+):\/\/([^/:]+)(:\d*)?([^#   ]*)/  
  </quote>  
  引用“JScript     语言参考   ”不应该有错吧?  
         
   
  #7。<input   type=text   class=colorBorderb   name=num   size=4   ID="Text1"   onkeyup="value=value.replace(/[^0-9.+-]+/g,'')">  
  我试试了效果加不加‘+’前后的效果是一样的,就不知道有什么用了。  
  Top

7 楼xinyunyishui(心云意水)回复于 2003-11-03 11:32:50 得分 0

#6。[^x]不是中的^的解释:<quote>匹配输入字符串的开始位置。如果设置了   RegExp   对象的   Multiline   属性,^   也匹配   '\n'   或   '\r'   之后的位置。</quote>那么也就是说“^”是字符串开始的位置,那么象"x   jss   jkdxjdk   xdd   "中的x也就可以匹配了呀。  
   
  如果要匹配开始,是/^x/不是/[^x]/  
   
  #4。(.*?)表示贪婪匹配0个或多个出了换行外的所有单个字符  
  .是匹配除   "\n"   之外的任何单个字符,*匹配前面的子表达式零次或多次  
  2个加在一起为什么就成了,能不能举个列子匹配什么东东。  
  eg:  
  <script   language=JavaScript>  
  alert("adf457^&*_+\\[]".match(/.*/))  
  </script>  
  #2。     /[   -~]/!=/[\w]/  
  自己试试看就知道了  
  Top

8 楼xinyunyishui(心云意水)回复于 2003-11-03 11:48:25 得分 0

/(\w+):\/\/([^/:]+)(:\d*)?([^#   ]*)/  
  分解:一个以上的单个字符+“:”+“//”+一个以上的除了“/:”外的字符+一个或0个由一个“:”后+0个以上的数字组成的字符串+除了“#   ”外的0个或以上的字符  
  我认为错的是因为([^/:]+)我觉得应该是([^\/:]+)  
  Top

9 楼renaski(洛林)回复于 2003-11-03 15:23:26 得分 0

##1。<script   language=JavaScript>  
  alert("adf457^&*_+\\[]".match(/.*?/))  
  </script>  
  我加了个?就什么也没有了不是说贪婪匹配0个或多个出了换行外的所有单个字符  
  那么应该全都有啊,  
   
  ##2。/(\w+):\/\/([^/:]+)(:\d*)?([^#   ]*)/  
  这里面的‘?’还是没有解释出来啊?  
   
  ##3。<input   type=text   class=colorBorderb   name=num   size=4   ID="Text1"   onkeyup="value=value.replace(/[^0-9.+-]+/g,'')">  
  里面的‘+’号有什么用啊?我有做了一遍,老样子啊。这个+在这个函数里不知道有什么用。  
   
  ##4。至于([^\/:]+)我觉得你没有错,他也没有错。不知道为什么,实践做出来的结果。(实践是检验真理的唯一标准)PS:里面的+是干什么用的啊?  
   
  分数我一定给你。Top

10 楼xinyunyishui(心云意水)回复于 2003-11-03 15:33:08 得分 0

##1。<script   language=JavaScript>  
  alert("adf457^&*_+\\[]".match(/.*?/))  
  </script>  
  我加了个?就什么也没有了不是说贪婪匹配0个或多个出了换行外的所有单个字符  
  那么应该全都有啊,  
  加了?表示非贪婪,也就是尽可能少,既然是0个或多个,当然匹配0个了!  
   
  ##2。/(\w+):\/\/([^/:]+)(:\d*)?([^#   ]*)/  
  这里面的‘?’还是没有解释出来啊?  
  晕!(:\d*)?表示0个或一个(:\d*)  
   
  ##3。<input   type=text   class=colorBorderb   name=num   size=4   ID="Text1"   onkeyup="value=value.replace(/[^0-9.+-]+/g,'')">  
  里面的‘+’号有什么用啊?我有做了一遍,老样子啊。这个+在这个函数里不知道有什么用。  
   
  这个只能问当初写代码的人了,只能说是因为它需要。对了,你说的是哪个+?中括号里的还是外的?  
   
  ##4。至于([^\/:]+)我觉得你没有错,他也没有错。不知道为什么,实践做出来的结果。(实践是检验真理的唯一标准)PS:里面的+是干什么用的啊?  
   
  表示一个或多个Top

11 楼longshenwang(清一色!一条小青龙)回复于 2003-11-03 15:38:55 得分 1

to     xinyunyishui(心云意水)     向你学习!     收藏..Top

12 楼renaski(洛林)回复于 2003-11-03 16:04:09 得分 0

##1。但他匹配了呀。所以照我的思路他应该要显示呀。  
  eg.<div><b>xxx</b></div>中,如果用<.*>匹配,结果就是<div><b>xxx</b></div>,因为他会尽可能多的匹配字符。如果用<.*?>结果只是<div>  
  那么照道理说应该是<>了。  
   
  ##3。是外面的那个+号。  
   
  ##4。至于([^\/:]+)我觉得你没有错,他也没有错。不知道为什么,实践做出来的结果。(实践是检验真理的唯一标准)PS:里面的+是干什么用的啊?  
   
  表示一个或多个  
  能不能给我举个列子呢?谢谢了。  
  不好意思,这种东西太抽象了,很难理解。Top

13 楼xuzuning(唠叨)回复于 2003-11-03 16:12:34 得分 0

1。       /^http:\/\/.+$/  
              这个+号有什么用?  
  一个以上字符  
   
  2。       /[   -~]/是不代表全体的字母啊包括数字?  
  从"   "到"~"的字符,即全部可打印字符  
   
  3。       贪婪的,和非贪婪的表达式是怎么用的?  
  4。       (.*?)和(*.+)  
              经常用到,我解释不通啊!?他的用途是字符串,但是什么样的字符串啊?  
  当?出现在?、*、+之后时表示非贪婪匹配,默认是贪婪匹配(即尽可能多的匹配)  
   
  5。       /(\w+):\/\/([^/:]+)(:\d*)?([^#   ]*)/  
              中的‘?’是有什么用?还有([^/:]+)总的‘+’为什么不能换成*  
              最后的([^#   ]*)总的‘*’可不可以换成+  
  ?表示可有可无。  
  [^/:]+   根据需要确定,这里表示至少有一个非"/"或":"的字符  
  [^#   ]*   这里表示后续字符可有可无,但不能是"#"或"   "  
   
  6。       为什么说[^x]中不能是x字符串?  
  这是规则约定,表示除"x"以外  
   
  7。       <input   type=text   class=colorBorderb   name=num   size=4   ID="Text1"   onkeyup="value=value.replace(/[^0-9.+-]+/g,'')">  
  里面的‘+’号有什么用啊?好像可有可无的。  
  这个式子值得商榷  
  事实上他只把非数值表达式的部分删去但诸如  
  ---23.0+++++0+.-5  
  视为合法,而0.23e4这样的科学表示法却没有反映正确  
  Top

14 楼tuoshi(小才-升星开心!)回复于 2003-11-03 16:15:57 得分 1

头晕中。。。。。。Top

15 楼xinyunyishui(心云意水)回复于 2003-11-03 16:27:02 得分 0

##1。但他匹配了呀。所以照我的思路他应该要显示呀。  
  eg.<div><b>xxx</b></div>中,如果用<.*>匹配,结果就是<div><b>xxx</b></div>,因为他会尽可能多的匹配字符。如果用<.*?>结果只是<div>  
  那么照道理说应该是<>了。  
  他的确匹配了,但匹配了0个。所以显示出来看不到东西。你的例子中,显示<div>是为了满足匹配要求<...>满足最小<.*?>的匹配模式阿,否则,要匹配第一个<到最后一个>出的所有内容。  
   
  ##3。是外面的那个+号  
  实验证明,那个+好像的确是多余的  
   
  ##4。至于([^\/:]+)我觉得你没有错,他也没有错。不知道为什么,实践做出来的结果。(实践是检验真理的唯一标准)PS:里面的+是干什么用的啊?  
  表示一个或多个  
  能不能给我举个列子呢?谢谢了。  
  不好意思,这种东西太抽象了,很难理解。  
  <script   language=JavaScript>  
  alert("asdf/asdf:asdf".match(/[^\/:]+/ig))  
  </script>Top

16 楼renaski(洛林)回复于 2003-11-04 11:46:32 得分 0

谢谢!最后一问  
  (.*)是什么东西?Top

17 楼renaski(洛林)回复于 2003-11-04 23:14:18 得分 0

..人呢?帮忙帮到底吗,我分数都给你了呀。Top

18 楼renaski(洛林)回复于 2003-11-05 11:06:43 得分 0

顶,早知道就不那么快揭贴了。哎!!!Top

相关问题

  • 求一电话号码正则表达式!接贴就给分!
  • 求我国电话号码正则表达式,在线等!!!能用就给分。。。
  • 40分求一正则表达式
  • 求一正则表达式(高分)
  • 100分求一正则表达式
  • 50分求一个正则表达式
  • 高分求一条正则表达式
  • 高分求一正则表达式
  • 正则表达式问题,给高分!!!
  • 高分求一个正则表达式

关键词

  • 字符
  • 检验
  • 字母
  • 匹配
  • 字符串
  • 表达式
  • 贪婪
  • 外的所有单个
  • 真理的唯一标准
  • 实践

得分解答快速导航

  • 帖主:renaski
  • xinyunyishui
  • longshenwang
  • tuoshi

相关链接

  • Web开发类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo