javascript trim()不起作用

时间:2014-03-17 12:34:06

标签: javascript jquery special-characters

我试图在删除部分字符串之前修剪字符串,但是字符串中的空格还有一些东西。

我试图修剪的字符串是

        200    KristianMedK                                                                fisk                                                         {dropdownbegin}                                  Ikke valgt                        fisk                        fugl                                                dinosaur                                                kristian                                                         {dropdownend}                                                                        Ikke valgt                                                                {dropdownbegin}                                  Ikke valgt                                            KristianMedK                       Laks                       TunMedT                       lasse                           {dropdownend}                    

该字符串是从tablesorter jquery库中元素的.text()方法返回的。 我已经通过

从字符串中过滤掉了一堆↵字符
mystring = mystring.replace(/\n/g, "")

使用

mystring= mystring.replace(" ","") 

也没有任何区别。

我怎样才能找出哪些otoher特殊字符隐藏在与javascript混乱的字符串中?

我的最终目标是删除{dropdownbegin}和{dropdownend}之间的内容,但是当获取indexof时我得到的子字符串是错误的并包含{dropdownend}之后的一些文本

    var index1 = text.indexOf("{dropdownbegin}");
    var index2 = text.indexOf("{dropdownend}");
    var substr = text.substr(index1, index2);
    text = text.replace(substr, "");

上面的代码给出了子串

{dropdownbegin} Ikke valgt fisk fugl dinosaur kristian {dropdownend} Ikke valg

由于我不知道的原因。

编辑修剪问题很快就解决了,因为我未能正确搜索现有问题。

3 个答案:

答案 0 :(得分:1)

尝试mystring.replace(/\s+/g, ' ');$.trim()

正如Pavel和Arun P在评论中指出的那样,这可能是一个重复的问题。

答案 1 :(得分:1)

我只会为你的最终目标而努力:

var str = "Test with {dropdownbegin} content and stuff{dropdownend}coolness";
var filtered = str.replace(/\{dropdownbegin\}.*\{dropdownend\}/, ''); // "Test with coolness"

答案 2 :(得分:1)

As you can read in the documentation of the trim() function,此函数删除字符串前后的空格,但不会触及字符串中的空格。

如果你想删除字符串中的空格,你必须编写自己的函数。

这里有一个小例子:

function cleanStr(str) {
    while (str.indexOf("\t") > -1) {
        str = str.replace("\t", " ");
    }
    while (str.indexOf("  ") > -1) {
        str = str.replace("  ", " ");
    }
    return str;
}

使用示例:

cleanStr("   aasdfqwer         wer  asdaf       awer   5asadf   sdf          ");

<强>结果:

" aasdfqwer wer asdaf awer 5asadf sdf "