如何全局替换JavaScript字符串中的正斜杠?
如何全局替换JavaScript字符串中的正斜杠?使用带有如何全局替换JavaScript字符串中的正斜杠?,javascript,Javascript,如何全局替换JavaScript字符串中的正斜杠?使用带有g修饰符的正则表达式文本,并用反斜杠转义正斜杠,使其不会与分隔符冲突 var str = 'some // slashes', replacement = ''; var replaced = str.replace(/\//g, replacement); 这是你想要的吗 'string with / in it'.replace(/\//g, '\\'); 以下操作可以,但只能替换一次: "string".replace('/',
g
修饰符的正则表达式文本,并用反斜杠转义正斜杠,使其不会与分隔符冲突
var str = 'some // slashes', replacement = '';
var replaced = str.replace(/\//g, replacement);
这是你想要的吗
'string with / in it'.replace(/\//g, '\\');
以下操作可以,但只能替换一次:
"string".replace('/', 'ForwardSlash');
对于全局替换,或者如果您更喜欢正则表达式,只需转义斜杠即可:
"string".replace(/\//g, 'ForwardSlash');
不使用regex(尽管我只会在搜索字符串为用户输入时这样做):
提议的regex
/\//g
对我不起作用;行的其余部分(//g,替换)代码>)被注释掉。这对我来说很有效,我把“/”
变成了“/”
您好,上面的脚本中有一个小的更正。。
上面的脚本在显示输出时跳过第一个字符
function stripSlashes(x)
{
var y = "";
for(i = 0; i < x.length; i++)
{
if(x.charAt(i) == "/")
{
y += "";
}
else
{
y+= x.charAt(i);
}
}
return y;
}
函数条斜杠(x)
{
变量y=“”;
对于(i=0;i
您需要将正斜杠换行,以避免跨浏览器问题或//注释
str = 'this/that and/if';
var newstr = str.replace(/[/]/g, 'ForwardSlash');
这是Christopher Lincolns的想法,但代码正确:
function replace(str,find,replace){
if (find != ""){
str = str.toString();
var aStr = str.split(find);
for(var i = 0; i < aStr.length; i++) {
if (i > 0){
str = str + replace + aStr[i];
}else{
str = aStr[i];
}
}
}
return str;
}
Javascript全局字符串替换非常复杂。这个函数解决了这个问题。这可能会对性能造成很小的影响,但我相信这是可以忽略的
这里有一个替代功能看起来更干净,但平均比上述功能慢25%到20%:
function replace(str,find,replace){
if (find !== ""){
str = str.toString().split(find).join(replace);
}
return str;
}
您可以创建一个RegExp
对象,使其更具可读性
str.replace(new RegExp('/'), 'foobar');
如果您想替换所有这些选项,请添加“g”
标志
str.replace(new RegExp('/', 'g'), 'foobar');
第一个代码段不进行全局替换。不太确定如何用非正则表达式的方式进行全局替换。啊,对了,我只是用斜杠来尝试。可以使用“string.replace('/','ForwardSlash','g')
完成,但这是一个非标准参数,仅在Firefox afaik中有效。“string.replace(//\///g,'ForwardSlash')
起作用,但是从中删除/g,它就不起作用了。@johntrepreneur g表示它是一个全局替换,即它替换匹配的/
的所有实例。没有g,它只替换一个实例。如果删除/g
,则会完全破坏正则表达式,因为最后一个/是结束分隔符。@RameshRajendran API就是这样的。。默认情况下,它只替换一次,然后在找到要替换的对象时停止。另请参见请注意,我不确定此解决方案的性能与建议的阵列拆分/加入解决方案相比如何。。。。我被这个绊倒了。。。使用更智能的语法高亮显示尝试不同的IDE。不要依赖代码编辑器的颜色,但要相信有状态解析器在运行时正确标记代码的能力。
var somevariable = replace('//\\\/\/sdfas/\/\/\\\////','\/sdf','replacethis\');
function replace(str,find,replace){
if (find !== ""){
str = str.toString().split(find).join(replace);
}
return str;
}
str.replace(new RegExp('/'), 'foobar');
str.replace(new RegExp('/', 'g'), 'foobar');