我有一个像“| aaaaaaaaaaaaaaa | aaaaaaaaaa | aaaaaaaaaaaaa”的字符串......现在我只想删除字符“|”并用“/ n”替换它们。
我尝试了这些失败:
function removeSeperator(str){
str = str.replace('|', "\n");
return str;}
function removeSeperator(str){
var rs="";
var i = 0;
for(i=0;i<str.trim().length;i++){
if(str[i]=="|"){
rs += str.substring(0, i) + "/n";
str = str.substring(i+1);
}
}
return rs;}
我必须在纯javascript上执行此操作,不允许使用jquery。
答案 0 :(得分:7)
要替换多个字符,您需要使用全局修饰符的正则表达式:
var a = "|aaaaaaaaaaaaaa|aaaaaaaaa|aaaaaaaaaaaa|";
var b = a.replace(/\|/g, "\n");
作为可调用的函数:
function removeSeperator(str){
return str.replace(/\|/g, "\n");
}
答案 1 :(得分:1)
您可以创建正则表达式来执行替换。
function removeSeperator(str){
str = str.replace(/\|/g, "\n");
return str;
}
答案 2 :(得分:1)
问题是javascript replace方法支持单数值,例如'|'只会替换一次角色。另一方面,您可以使用正则表达式,例如“/ \ | / g”,它将替换所有出现的“|”用一条新线。实际上,您的代码看起来像这样 -
function replaceString ( str ) {
cleanedString = str.replace(/\|/g, "\n");
return cleanedString;
}
var theString = "|aaaaaaaaaaaaaa|aaaaaaaaa|aaaaaaaaaaaa|";
window.alert(replaceString(theString));
输出看起来像 -
aaaaaaaaaaaaaa
AAAAAAAAA
AAAAAAAAAAAA
近似值,是您所期待的。希望这有帮助!
答案 3 :(得分:1)
你只需要一个正则表达式:
function removeSeperator(str){
str = str.replace(/\|/g,'\n');
return str;
}
简单替换仅适用于第一个条目。 还有2个具有相同名称的函数..如果这是您的实际代码,可能会给您带来一些问题。