求救js字符串完全替换

haoztao 2011-11-25 04:18:57
jsp中有如下:
保险|理赔|保险|死亡|

str="保险|理赔|保险|死亡|";
var obj_str="保险"+"|";
str=str.replace(obj_str,"")


此方法不能把其中的“保险|”全部替换掉,有没有好办法?
另外如何匹配字符串中存在“保险|”?
...全文
362 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
lufengsn 2011-11-25
  • 打赏
  • 举报
回复
不好意思,你的示例代码调用有问题,没看清楚你要替换的 | 是特殊字符,得特殊处理,前面加 两个 \\ 符号,把它转为正常的字符串
代码是:


var str="保险|理赔|保险|死亡|";
var obj_str = "保险" + "\\|";
//或者 var obj_str = "理赔" + "\\|";
str = replaceKey(str, obj_str, "");
lufengsn 2011-11-25
  • 打赏
  • 举报
回复
可以先定义一个正则表达式:

//replaceText:为要替换的字符串,可以全部替换掉要替换的字符串
var regExp = new RegExp(replaceText, "g");


通用函数为:

/**
* 替换关键字
* @param {String}stringObj 要操作的字符串
* @param {String}replaceText要替换的字符串
* @param {String}newText 替换成新的字符串
*/
function replaceKey(stringObj, replaceText, newText) {
var regExp = new RegExp(replaceText, "g");
stringObj = stringObj.replace(regExp, newText);
return stringObj;
}


你的示例调用:

var str="保险|理赔|保险|死亡|";
var obj_str = "保险" + "|";
//或者 var obj_str = "理赔" + "|";
str = replaceKey(str, obj_str, "");
haoztao 2011-11-25
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 ifandui 的回复:]

你那样写 replace 第一个参数是字符串 就不会已正则方式去替换了
"/保险\|/g"
不等于/保险\|/g
[/Quote]
那应该如何写???
默默不得鱼 2011-11-25
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 ifandui 的回复:]
JScript code

var t="保险|";
var str="保险|理赔|保险|死亡|abc|789";
t=t.replace("|","\\|");
var obj_str=new RegExp(t,"g");
str=str.replace(obj_str,"")
alert(str);
[/Quote]想拼字符串 就我写这个了 注意|要用\转义 而\也需要\转义 所以是\\|
默默不得鱼 2011-11-25
  • 打赏
  • 举报
回复
你那样写 replace 第一个参数是字符串 就不会已正则方式去替换了
"/保险\|/g"
不等于/保险\|/g
p2227 2011-11-25
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 haoztao 的回复:]

引用 6 楼 haoztao 的回复:

引用 2 楼 ifandui 的回复:

JScript code
var str="保险|理赔|保险|死亡|";
var obj_str=/保险\|/g;
str=str.replace(obj_str,"")
alert(str);

如果要替换的是个字符串 也是就说不一定是“保险|”也许是“理赔|”或者“死亡|”呢?有没有一个通……
[/Quote]因为那是一个正则表达式,不是字符串
默默不得鱼 2011-11-25
  • 打赏
  • 举报
回复
var t="保险|";
var str="保险|理赔|保险|死亡|abc|789";
t=t.replace("|","\\|");
var obj_str=new RegExp(t,"g");
str=str.replace(obj_str,"")
alert(str);
haoztao 2011-11-25
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 haoztao 的回复:]

引用 2 楼 ifandui 的回复:

JScript code
var str="保险|理赔|保险|死亡|";
var obj_str=/保险\|/g;
str=str.replace(obj_str,"")
alert(str);

如果要替换的是个字符串 也是就说不一定是“保险|”也许是“理赔|”或者“死亡|”呢?有没有一个通用的方法?
[/Quote]

var obj_str="/"+"保险"+"\"+"|"+"/"+"g";
str=str.replace(obj_str,"");

这样写为啥不行??
p2227 2011-11-25
  • 打赏
  • 举报
回复
为什么五楼不见了。。。。我让楼主学习 正则表达式 的。。。。
p2227 2011-11-25
  • 打赏
  • 举报
回复
//其他代码
var obj_str=/理赔\|/g;
//其他代码


//其他代码
var obj_str=/死亡\|/g;
//其他代码
haoztao 2011-11-25
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 ifandui 的回复:]

JScript code
var str="保险|理赔|保险|死亡|";
var obj_str=/保险\|/g;
str=str.replace(obj_str,"")
alert(str);
[/Quote]
如果要替换的是个字符串 也是就说不一定是“保险|”也许是“理赔|”或者“死亡|”呢?有没有一个通用的方法?
p2227 2011-11-25
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 haoztao 的回复:]

引用 1 楼 p2227 的回复:

HTML code
<html>
<head>

</head>
<body>
<script>
str="保险|理赔|保险|死亡|";
str=str.replace(/保险\|/g,"");
alert(str);
</script>
</body>
</html>

如果要替换的是个字符串呢?
[/Quote]搜索一下“正则表达式”
haoztao 2011-11-25
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 p2227 的回复:]

HTML code
<html>
<head>

</head>
<body>
<script>
str="保险|理赔|保险|死亡|";
str=str.replace(/保险\|/g,"");
alert(str);
</script>
</body>
</html>
[/Quote]
如果要替换的是个字符串呢?
默默不得鱼 2011-11-25
  • 打赏
  • 举报
回复
var str="保险|理赔|保险|死亡|";
var obj_str=/保险\|/g;
alert(str.match(obj_str)?"存在":"不存在");
str=str.replace(obj_str,"")
alert(str);
alert(str.match(obj_str)?"存在":"不存在");
默默不得鱼 2011-11-25
  • 打赏
  • 举报
回复
var str="保险|理赔|保险|死亡|";
var obj_str=/保险\|/g;
str=str.replace(obj_str,"")
alert(str);
p2227 2011-11-25
  • 打赏
  • 举报
回复
<html>
<head>

</head>
<body>
<script>
str="保险|理赔|保险|死亡|";
str=str.replace(/保险\|/g,"");
alert(str);
</script>
</body>
</html>

87,989

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧