ios用新的子串替换子串

时间:2015-01-19 06:46:24

标签: html ios iframe nsstring substring

我有一个如下字符串 -

<html> 
<head> 
</head> 
<body>

<p>***Some Text***.</p>

<p><iframe allowfullscreen="" frameborder="0" height="360" src="//www.some-domain.com/embed/mwOFWJUOpv8" width="600"></iframe></p></body>

我想将字符串底部的iframe标记中的一些参数替换为 -

<iframe allowfullscreen="" frameborder="0" height="new vlaue" src="//www.some-domain.com/embed/mwOFWJUOpv8" width="new value"></iframe>

我可以使用所需的更改成功地从"<iframe""</iframe>"抓取字符串。我遇到问题用新字符串替换整个<iframe ...</iframe>

所以我的结果应该是这样的 -

<html> 
    <head> 
    </head> 
    <body>

    <p>***Some Text***.</p>

    <p><iframe allowfullscreen="" frameborder="0" height="new vlaue" src="//www.some-domain.com/embed/mwOFWJUOpv8" width="new value"></iframe></p></body>

编辑: - 我已采用this方式,但无法替换字符串中的整个iframe标记。

请帮帮我!

1 个答案:

答案 0 :(得分:1)

尝试这样的尝试。假设str是你帖子中提到的抓取字符串。

str = [str stringByReplacingOccurrencesOfString:@"width=\"600\"" withString:@"width=\"new value\""];

修改

NSString *theStr= @"<iframe allowfullscreen=\"\" frameborder=\"0\" height=\"360\" src=\"//www.some-domain.com/embed/mwOFWJUOpv8\" width=\"600\"></iframe>";
NSString *replacedStr = [theStr stringByReplacingOccurrencesOfString:@"width=\"600\"" withString:@"width=\"new value\""];

NSRange range1 = [sourceStr rangeOfString:@"<iframe"];
NSRange range2 = [sourceStr rangeOfString:@"iframe>"];

NSRange range3 = NSMakeRange(range1.location, range2.location + range2.length - range1.location);

NSString *finalStr = [sourceStr stringByReplacingCharactersInRange:range3 withString:replacedStr];