从特定字符开始删除字符串

时间:2013-07-08 20:47:36

标签: javascript jquery

我正在处理从API收到的一些内容。在主文本字段的末尾,api有时会返回以下字符串:

@@canvas-link@@{"type":"doc","fileName":"xyzv2.jpg","fileExt":"jpg",
         "fileSize":"232352",
               "file":"405957767101","downloadUrl":"dummytext"}

从主文本字段中删除此字符串的最佳方法是什么?

4 个答案:

答案 0 :(得分:2)

str = str.replace(/@@canvas-link@@.*/, '');

答案 1 :(得分:1)

如果您确定它已结束,此版本最快;

s.substring(0, s.lastIndexOf("@@canvas-link@@")) ; // FASTER than most

但是已更新为了好玩,我使用slice()的另一种变体在此测试中的速度略快于substring()

s.slice(0,s.lastIndexOf("@@canvas-link@@")); // FASTEST

这是jsPerf,显示他们击败RegEx和分裂。虽然我很惊讶分裂并不快。

但是,您的里程可能会有所不同,对于更复杂的情况,我希望RegEx(替换)能够名列前茅。

答案 2 :(得分:0)

改善Joseph Silbers,

str = str.replace(/@@canvas-link@@{.*}/, '');

确保在之后不删除任何内容。

答案 3 :(得分:0)

您可以使用正则表达式,但split()可以避免回车的复杂化。

var str = 'foobar@@canvas-link@@{"type":"doc","fileName":"xyzv2.jpg","fileExt":"jpg",
     "fileSize":"232352",
           "file":"405957767101","downloadUrl":"dummytext"}';
var data = str.split('@@canvas-link@@')[0];
console.log(data);

>> foobar