主站
经典论坛
家园
作品
品网
维基
桌面
招聘
T恤
注册
登录
专长会员
帮助
客服QQ:6650171
经典论坛
»
前台制作与脚本专栏
» 请教一个问题!
‹‹ 上一主题
|
下一主题 ››
发新话题
发布投票
发布商品
发布悬赏
发布活动
发布辩论
发布视频
打印
请教一个问题!
howtodown
[楼主]
新手上路
帖子
7
体力
17
威望
0
离线
1316 天
发短消息
加为好友
1
#
大
中
小
发表于 2006-12-17 19:24
如何利用JS实现:删除文章中所有的以"["开始"]"结束并且其中不含有“:”的内容?
积分
17
阅读权限
10
在线时间
4 小时
注册时间
2006-12-17
最后登录
2006-12-22
查看详细资料
TOP
西部数码港台主机新上线即买即用
|
211工程高起专、高起本、专升本
mozart0
匪徒田老大
荣誉管理团队
帖子
2378
体力
6376
威望
180
当前
上海 长宁
离线
12 天
个人空间
发短消息
加为好友
打分 11
2
#
大
中
小
发表于 2006-12-17 21:20
<textarea id=oTxt cols=70 rows=15>如何利用JS实现:删除文章中所有的以"["开始"]"结束并且其中不含有“:”的内容? 如何利用JS实现:删除文章中所有的以"["开始"]"结束并且其中[不含有“:”]的内容?</</textarea> <hr> <input type=button onclick='oTxt.value=oTxt.value.replace(/\[[^:]*\]/g,"")' value=test>
提示:您可以先修改部分代码再运行
居处恭 执事敬 与人忠
积分
6556
阅读权限
100
性别
男
在线时间
980 小时
注册时间
2003-6-18
最后登录
2010-7-18
查看详细资料
TOP
PSD网页模板下载,高端实用
|
微软 visual studio 2010 专题
wjeasy
银牌会员
认证
帖子
2069
体力
1239
威望
3
当前
山东 泰安
个人网站
发短消息
加为好友
打分 2
专长
C/C++,delphi,MSSQL
3
#
大
中
小
发表于 2006-12-17 21:21
<textarea id="aa" cols=50 rows=10></textarea> <textarea id="bb" cols=50 rows=10></textarea> <script> var str="如何利用JS实现:删除文章中所有的以'['开始']'结[开始的吗]束并且其中不含有[有':']的内容?"; var tmp=str.replace(/\[[^:\[\]]*\]/g,""); aa.value=str; bb.value=tmp; </script>
提示:您可以先修改部分代码再运行
[
本帖最后由 wjeasy 于 2006-12-17 21:45 编辑
]
积分
1290
阅读权限
70
性别
男
在线时间
2569 小时
注册时间
2006-8-10
最后登录
2010-7-30
查看个人网站
查看详细资料
TOP
刘宾设计咨询机构/案例集1.3下载(268p)
|
用画笔实现你的“原画设计师”梦想!
wjeasy
银牌会员
认证
帖子
2069
体力
1239
威望
3
当前
山东 泰安
个人网站
发短消息
加为好友
打分 2
专长
C/C++,delphi,MSSQL
4
#
大
中
小
发表于 2006-12-17 21:30
2楼的比我快了
,不过2楼没有考虑到在[]中间可能还会含有[]情况。
积分
1290
阅读权限
70
性别
男
在线时间
2569 小时
注册时间
2006-8-10
最后登录
2010-7-30
查看个人网站
查看详细资料
TOP
mozart0
匪徒田老大
荣誉管理团队
帖子
2378
体力
6376
威望
180
当前
上海 长宁
离线
12 天
个人空间
发短消息
加为好友
打分 11
5
#
大
中
小
发表于 2006-12-17 21:46
不是没考虑到,是考虑之后决定不理它,既然楼定义得那么宽泛
像[aaa[bbc]]这样的,它何尝不符合以"["开头以"]"结尾里面不含":"?
恰恰按三楼的办法处理过后,反倒出现了[aaa]这么一个无可争议不该存在的东西
[
本帖最后由 mozart0 于 2006-12-17 21:47 编辑
]
居处恭 执事敬 与人忠
积分
6556
阅读权限
100
性别
男
在线时间
980 小时
注册时间
2003-6-18
最后登录
2010-7-18
查看详细资料
TOP
wjeasy
银牌会员
认证
帖子
2069
体力
1239
威望
3
当前
山东 泰安
个人网站
发短消息
加为好友
打分 2
专长
C/C++,delphi,MSSQL
6
#
大
中
小
发表于 2006-12-17 21:47
可是这样的话像 a[1]b[2]c 这样的就直接变成了 ac 了
积分
1290
阅读权限
70
性别
男
在线时间
2569 小时
注册时间
2006-8-10
最后登录
2010-7-30
查看个人网站
查看详细资料
TOP
wjeasy
银牌会员
认证
帖子
2069
体力
1239
威望
3
当前
山东 泰安
个人网站
发短消息
加为好友
打分 2
专长
C/C++,delphi,MSSQL
7
#
大
中
小
发表于 2006-12-18 05:40
我想这样实现
<textarea id="aa" cols=50 rows=10></textarea> <textarea id="bb" cols=50 rows=10></textarea> <script> var str="如何利用JS实现:删[2[23[526j[52i[58865[526]jkku]j]k]25]5]除文章[1]中[2]所有的以\"[\"开始\"]\"结束并且其中不含有[有':']的内容?"; var tmp=str; var reg=/\w*\[[^:]*\]\w*/g; var c=0; alert(reg.test(str));alert(reg.test(str));alert(reg.test(str));alert(reg.test(str)); while(reg.test(tmp)){ alert("已循环"+ ++c+"次"); reg.test(tmp); tmp=tmp.replace(/\[[^:\[\]]*\]/g,""); } aa.value=str; bb.value=tmp; </script>
提示:您可以先修改部分代码再运行
但是为什么test一会儿是true,一会儿是false呢?
不过我在循环中又写了一次 test就能实现了.
,现在 就是不管它套多少层都能正确的识别了。
+++++++++++++++++++++++++++++++++++
哦,发现问题了,如果把全局选项去掉就可以了,但是不知其中原因,难道 test 会改变原来的内容?
<textarea id="aa" cols=50 rows=10></textarea> <textarea id="bb" cols=50 rows=10></textarea> <script> var str="如何利用JS实现:删[2[23[526j[52i[58865[526]jkku]j]k]25]5]除文章[1]中[2]所有的以\"[\"开始\"]\"结束并且其中不含有[有':']的内容?"; var tmp=str; var reg=/\w*\[[^:]*\]\w*/; var c=0; //alert(reg.test(str));alert(reg.test(str));alert(reg.test(str));alert(reg.test(str)); while(reg.test(tmp)){ //alert("已循环"+ ++c+"次"); tmp=tmp.replace(/\[[^:\[\]]*\]/g,""); } aa.value=str; bb.value=tmp; </script>
提示:您可以先修改部分代码再运行
[
本帖最后由 wjeasy 于 2006-12-18 09:51 编辑
]
积分
1290
阅读权限
70
性别
男
在线时间
2569 小时
注册时间
2006-8-10
最后登录
2010-7-30
查看个人网站
查看详细资料
TOP
mozart0
匪徒田老大
荣誉管理团队
帖子
2378
体力
6376
威望
180
当前
上海 长宁
离线
12 天
个人空间
发短消息
加为好友
打分 11
8
#
大
中
小
发表于 2006-12-18 19:31
re #7:
不是reg.test改变了str,而是reg.test改变了reg的内部状态
像这样的:
alert(/\w*\[[^:]*\]\w*/g.test(str));
alert(/\w*\[[^:]*\]\w*/g.test(str));
alert(/\w*\[[^:]*\]\w*/g.test(str));
alert(/\w*\[[^:]*\]\w*/g.test(str));
就一直会有确定的结果,因为每一句里的正则表达式对象都是独立的
虽然没看到有正式的资料,但我估计是这样的:
加了全局标志的正则对象在test时会记录成功匹配的位置,下次调用test,会从该位置继续
下面两段代码的执行结果可以证明这一点:
<script> var reg=/aa/g var s1="aabb",s2="aacc"; alert(reg.test(s1)) alert(reg.test(s2)) </script>
提示:您可以先修改部分代码再运行
<script> var reg=/aa/g var s1="aabb",s2="ccaa"; alert(reg.test(s1)) alert(reg.test(s2)) </script>
提示:您可以先修改部分代码再运行
居处恭 执事敬 与人忠
积分
6556
阅读权限
100
性别
男
在线时间
980 小时
注册时间
2003-6-18
最后登录
2010-7-18
查看详细资料
TOP
wjeasy
银牌会员
认证
帖子
2069
体力
1239
威望
3
当前
山东 泰安
个人网站
发短消息
加为好友
打分 2
专长
C/C++,delphi,MSSQL
9
#
大
中
小
发表于 2006-12-18 19:52
谢谢楼上的,知道了,以后要再遇到就知道怎么解决了,两种方法:
1.每次都写新的正则表达式对象.
2.不用全局选项
积分
1290
阅读权限
70
性别
男
在线时间
2569 小时
注册时间
2006-8-10
最后登录
2010-7-30
查看个人网站
查看详细资料
TOP
howtodown
[楼主]
新手上路
帖子
7
体力
17
威望
0
离线
1316 天
发短消息
加为好友
10
#
大
中
小
发表于 2006-12-18 23:08
谢谢各位朋友!
积分
17
阅读权限
10
在线时间
4 小时
注册时间
2006-12-17
最后登录
2006-12-22
查看详细资料
TOP
‹‹ 上一主题
|
下一主题 ››
版块跳转
内部交流区
网站开发区
前台制作与脚本专栏
后台数据库编程
WEB标准化专栏
WAP 技术专栏
平面设计区
艺术与设计论坛
Adobe Photoshop 专栏
Fireworks 专栏
矢量图形专栏
插画手绘交流
交互设计区
用户体验综合版
UI图形设计
RIA设计与应用
Flash 专栏
Silverlight 专版
Director 专栏
其它技术讨论区
计算机技术
英语学习和技术翻译
摄影欣赏与技术交流
无线通讯与数码设备
信息平台
企业招聘
学习工作交流区
体育运动、线下活动与游戏
创业版
Adobe活动专区(临时)
Adobe在线创意节讨论区
最近访问的版块
WEB标准化专栏
Flash 专栏
艺术与设计论坛
Adobe Photoshop 专栏
后台数据库编程