正则表达式(fason帮忙)帮UP的有分。200分(分要的话还有,但问题要解决)
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




