首页 新闻 会员 周边

关于Javascript使用正则表达式问题

0
悬赏园豆:20 [已解决问题] 解决于 2010-11-02 17:14
//现有一串字符, 现在我想将 某组 CollectionTable1_th_ 开头, 以;结尾的字符串替换, 如: CollectionTable1_th_3:530; 替换为 888

var s = 'CollectionTable1_th_0:530;CollectionTable1_th_1:530;CollectionTable1_th_2:850;CollectionTable1_th_3:530;CollectionTable1_th_4:530;';

//动态指定组名
var name = 'CollectionTable1_th_2';

//现在我想实现以参数 name 的形式 这条代码的结果
var result = s.replace(/CollectionTable1_th_2:\d*;/, '888');


//应该怎么样写才对呢?这样写无效
var result = s.replace(new RegExp(name + /:\d*;/), '888');

 

有人可以帮忙解决一下吗?

ImRay的主页 ImRay | 初学一级 | 园豆:130
提问于:2010-11-02 15:05
< >
分享
最佳答案
0
<body>
<input type="button" value="test" onClick="test('CollectionTable1_th_2')">
</body>
</html>
<script type="text/javascript">
//现有一串字符, 现在我想将 某组 CollectionTable1_th_ 开头, 以;结尾的字符串替换, 如: CollectionTable1_th_3:530; 替换为 888
var s = 'CollectionTable1_th_0:530;CollectionTable1_th_1:530;CollectionTable1_th_2:850;CollectionTable1_th_3:530;CollectionTable1_th_4:530;';
//动态指定组名
var name = 'CollectionTable1_th_2';
//现在我想实现以参数 name 的形式 这条代码的结果
//
var result = s.replace(/CollectionTable1_th_2:\d*;/, '888');
//
alert(result);
//
应该怎么样写才对呢?这样写无效
//
var result = s.replace(new RegExp(name + /:\d*;/), '888');

function test(name,result)
{
var re_f =name+':\\d*';//注意斜杠的转义
var re_s =name+':\d*';
alert(re_f);
alert(re_s);
//自己比较两者的不同
var re_test = new RegExp(re1, 'g');
alert(re_test)
var test = s.replace( re_test, '888');
alert(test)
}
</script>
收获园豆:10
dodohua | 小虾三级 |园豆:1037 | 2010-11-02 16:19
其他回答(2)
0
new RegExp(name + ':\d*;')
收获园豆:10
Gray Zhang | 园豆:17610 (专家六级) | 2010-11-02 15:08
这个试过了, 不行的说
支持(0) 反对(0) ImRay | 园豆:130 (初学一级) | 2010-11-02 15:12
new RegExp(name + ':\\d*;') 变成字符串了就自己转义一下嘛
支持(0) 反对(0) Gray Zhang | 园豆:17610 (专家六级) | 2010-11-02 15:36
0

对,应该是转义的问题,试试。

狗尾草. | 园豆:94 (初学一级) | 2010-11-02 16:00
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册