【问题标题】:Javascript - Splicing strings from certain character to next characterJavascript - 将字符串从某个字符拼接到下一个字符
【发布时间】:2013-10-26 18:38:47
【问题描述】:

希望是一个基本的问题,因为我有点迷失从哪里开始。

假设我们在 JS 中有这个字符串:

var foo = “是的,今天#hello #vcc #toomanyhashtags #test 我们去公园跳舞了”

我将如何动态查找字符“#”并删除之后的所有内容,直到它碰到一个空格(或在 #test 的实例中,直到字符串结束) em>?

即。所以上面的字符串会这样写:

var foo = "是的,今天我们去公园跳舞了"

我的概念是循环遍历整个字符串的字符和if 字符 === "#",删除字符直到当前循环的项目 === ""。有没有更短的方法来做到这一点?

初步概念:

var foo = "Hello, this is my test #test #hello";
var stripHashtags = function(x) {
    for (i=0; i < x.length; i++) {
        if (x[i] !== "#") {
            console.log(x[i]);
        }
    }
};
stripHashtags(foo);

【问题讨论】:

    标签: javascript jquery string substring splice


    【解决方案1】:

    您也可以使用simple regex string 来完成此操作

    foo.replace(/#[^ ]*/g, ""))
    

    【讨论】:

    • 我认为这个答案效果最好。您会推荐任何学习正则表达式的资源吗?
    • 正则表达式正在执行“查找 # 个字符以及非空格的所有内容零次或多次,然后全局执行”。所以它会扫描直到找到一个空格,然后停止。由于有一个 g 选项,它会全局执行,所以它会留下空格。您也可以通过添加一个空格来删除它们。至于资源,this 不错,但请尝试阅读。
    【解决方案2】:

    foo.substr(0,foo.indexOf("#"))。这可以为您提供所需的输出,我想如果那是您正在寻找的。​​p>

    【讨论】:

    • 嗯,完全有帮助。如果它更像......“是的,今天#hello #vcc #toomanyhashtags #test 我们去公园跳舞了”你的回答完全回答了我的问题,但我用错了。将编辑原始问题。
    【解决方案3】:

    您可以使用可用于字符串的 indexOf() 方法来解决此问题。这将返回您要查找的任何内容的第一次出现的字符位置。然后使用子字符串

    var i = foo.indexOf('#');
    foo = foo.substr(0,i);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-14
      • 1970-01-01
      • 2011-06-17
      • 2016-01-17
      • 1970-01-01
      相关资源
      最近更新 更多