2012-07-03 23 views
0

我试图从刮部位切割出一些文字,不知道是什么功能或图书馆我可以用它来使这更容易确切的文本:代码使用JavaScript字符串操作,切出

例子,我从运行PhantomJS:interesting

var latest_release = page.evaluate(function() { 
       // everything inside this function is executed inside our 
       // headless browser, not PhantomJS. 
       var links = $('[class="interesting"]'); 
       var releases = {}; 
       for (var i=0; i<links.length; i++) { 
        releases[links[i].innerHTML] = links[i].getAttribute("href"); 
       } 

       // its important to take note that page.evaluate needs 
       // to return simple object, meaning DOM elements won't work. 
       return JSON.stringify(releases); 
      }); 

类有我需要什么,由新线和标签和诸如此类的东西所包围。

那就是:

{"\n\t\t\t\n\t\t\t\tI_Am_Interesting\n\t\t\t\n\t\t":null,"\n\t\t\t\n\t\t\t\tI_Am_Interesting\n\t\t\t\n\t\t":null,"\n\t\t\t\n\t\t\t\tI_Am_Interesting\n\t\t\t\n\t\t":null} 

我试图string.slice("\n");什么都没有发生,我真的希望有一个有效的方法,能够切出这样的字符串,是根据它的那些\n'的和\t“的关系小号

通过,这是我的分裂代码的方式:

var x = latest_release.split('\n'); 

干杯。

回答

2
var interesting = { 
     "\n\t\t\t\n\t\t\t\tI_Am_Interesting1\n\t\t\t\n\t\t":null, 
     "\n\t\t\t\n\t\t\t\tI_Am_Interesting2\n\t\t\t\n\t\t":null, 
     "\n\t\t\t\n\t\t\t\tI_Am_Interesting3\n\t\t\t\n\t\t":null 
    } 

    found = new Array(); 
    for(x in interesting) { 
     found[found.length] = x.match(/\w+/g); 
    } 
    alert(found); 
+0

这很完美!我现在要深入研究'正则表达式',我需要明确地知道'(/ \ w +/g)'如何能够转换文本。相当了不起。谢谢:) – Joseph

+2

如将返回字的数组,如果有趣的文字中有空格在它的正则表达式。只是要注意的事情。 –

1

你能尝试用 “\\ N” 的模式?您\ n可以被理解为简单的字符串,而不是特殊字符

+0

是啊,你关于它不工作的原因吧,\\ñ就像一个魅力。但是\ t只会删除一个标签,而不是其他标签。 – Joseph

+0

'VAR X = latest_release.split(\\ N'+ '\\吨');'这使得这样的:' “\吨\吨,\吨\吨\ tI_Am_Interesting,\吨\吨,\ t” 的:空,'仍然有问题,获得该中部不过,它似乎只是到目前为止 – Joseph

+0

你可以使用正则表达式更复杂的分裂去。这里是一个网站,帮助构建JavaScript正则表达式,有一些教程和现场测试:http://www.regular-expressions.info/javascriptexample.html – Arcadien

0
new_string = string.replace("\n", "").replace("\t", ""); 
+1

与string.replace()只能查找和替换他们满足的首要条件。 –

+0

是的,我同意,我们应该在这里使用正则表达式。我认为Amith George提供的解决方案可以工作 –

+0

@SomethVictory您可以使用全局标志来替换字符串中的所有匹配项 - https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/replace。 – whostolemyhat

3

其剔除所有空格的简单情况。一个正则表达式很好的工作。

var s = " \n\t\t\t\n\t\t\t\tI Am Interesting\n\t\t \t \n\t\t"; 
s = s.replace(/[\r\t\n]+/g, ''); // remove all non space whitespace 
s = s.replace(/^\s+/, ''); // remove all space from the front 
s = s.replace(/\s+$/, ''); // remove all space at the end :) 
console.log(s); 

延伸阅读:https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp