如何在JavaScript字符串中全局替换正斜杠?

时间:2010-12-30 22:31:25

标签: javascript

如何在JavaScript字符串中全局替换正斜杠?

10 个答案:

答案 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');