如何在JavaScript字符串中全局替换正斜杠?
答案 0 :(得分:213)
以下情况可以,但只会替换一次出现:
"string".replace('/', 'ForwardSlash');
对于全局替换,或者如果您更喜欢正则表达式,您只需要转义斜杠:
"string".replace(/\//g, 'ForwardSlash');
答案 1 :(得分:24)
使用带有g
修饰符的正则表达式文字,并使用反斜杠转义正斜杠,这样它就不会与分隔符冲突。
var str = 'some // slashes', replacement = '';
var replaced = str.replace(/\//g, replacement);
答案 2 :(得分:8)
不使用正则表达式(尽管我只会在搜索字符串是用户输入时执行此操作):
var str = 'Hello/ world/ this has two slashes!';
alert(str.split('/').join(',')); // alerts 'Hello, world, this has two slashes!'
答案 3 :(得分:4)
这是你想要的吗?
'string with / in it'.replace(/\//g, '\\');
答案 4 :(得分:3)
这有助于我将"//"
转变为"/"
。
str.replace(/\/\//g, '/');
答案 5 :(得分:2)
您需要包含正斜杠以避免跨浏览器问题或//注释掉。
var myArray = NSMutableArray()
myArray.addObject(NSNumber(int: 40))
myArray.addObject(NSNumber(int: 80))
myArray.addObject(NSNumber(int: 120))
myArray.addObject(NSNumber(int: 160))
myArray.addObject(NSNumber(int: 200))
for item in myArray
{
let location = CGPoint(x: CGFloat(item.floatValue), y: 1)
let sprite = SKSpriteNode(imageNamed: "myImage")
sprite.xScale = 0.5
sprite.yScale = 0.5
sprite.position = location
let action = SKAction.moveToY(-4, duration: 4.5)
sprite.runAction(action)
addChild(sprite)
}
答案 6 :(得分:1)
你在上面的剧本中做了一个小小的修正.. 上面的脚本在显示输出时跳过第一个字符。
function stripSlashes(x)
{
var y = "";
for(i = 0; i < x.length; i++)
{
if(x.charAt(i) == "/")
{
y += "";
}
else
{
y+= x.charAt(i);
}
}
return y;
}
答案 7 :(得分:0)
var str = '/questions'; // input: "/questions"
while(str.indexOf('/') != -1){
str = str.replace('/', 'http://stackoverflow.com/');
}
alert(str); // output: "http://stackoverflow.com/questions"
拟议的正则表达式/\//g
对我不起作用;该行的其余部分(//g, replacement);
)已被注释掉。
答案 8 :(得分:0)
这是克里斯托弗·林肯(Christopher Lincolns)的答案,但放在函数中并稍加修改。
function replace(str,find,replace){
if (find != ""){
var newindex, oldindex;
while(true){
newindex = str.indexOf(find);
if (newindex != -1 && newindex != oldindex){
str = str.replace(find,replace);
}else{
break;
}
oldindex = newindex;
}
}
return str;
}
示例用法:
var somevariable = replace('//\\\/\/sdfas/\/\/\\\////','\/sdf','replacethis\');
JavaScript全局字符串替换不必要地复杂。此功能解决了该问题。对性能的影响可能很小,但我相信它可以忽略不计。
答案 9 :(得分:-1)
您可以创建一个RegExp
对象,使其更具可读性
str.replace(new RegExp('/'), 'foobar');
如果要替换所有标签,请添加"g"
标志
str.replace(new RegExp('/', 'g'), 'foobar');