我有这个函数第一次找到字符串:
var strng:String = new String(txtSource.text)
var position:Number = new Number();
position = strng.indexOf("<img pg",0);
strng = strng.substring(position + 4);
position = strng.indexOf(">");
strng = strng.substring(0, position);
textcontrol1.text = String(strng);
现在我得到以下字符串作为答案
<img pg="asStoryVid" class="" vspace="0" marginheight="0" marginwidth="0" width="300" border="0" src="http://www.abc.com/thumb/msid-22087805,width-300,resizemode-4/xyz.jpg"
alt="" title="" ag="">
现在,我想从上面的字符串中只想要src =“http://www.abc.com/thumb/msid-22087805,width-300,resizemode-4/xyz.jpg”。为此我写了这个函数
var strng1:String = new String(textcontrol1.text)
var position1:Number = new Number();
position1 = strng1.indexOf('src="http://',0);
strng1 = strng1.substring(position1 + 0);
position1 = strng1.indexOf('"');
strng1 = strng1.substring(0, position1);
textcontrol1.text = String(strng1);
但在输出中我得到一个没有字符串 任何人都可以告诉我哪里错了?
答案 0 :(得分:0)
试试这段代码。
var strng1:String = new String(textcontrol1.text);
var position1:Number = new Number();
position1 = strng1.indexOf('src="http://',0);
strng1 = strng1.substring(position1 + 0);
// search 2nd " character
position1 = strng1.indexOf('"', strng1.indexOf('"') + 1);
strng1 = strng1.substring(0, position1 + 1);
textcontrol1.text = String(strng1);
答案 1 :(得分:0)
不不不 - 只是use a regex:
var str:String = '<img pg="asStoryVid" class="" vspace="0" marginheight="0" marginwidth="0" width="300" border="0" src="http://www.abc.com/thumb/msid-22087805,width-300,resizemode-4/xyz.jpg" alt="" title="" ag="">';
//var str:String = new String(textcontrol1.text);
var pattern:RegExp = /<img [^>]*src="([^"]+)"/i;
var result:Object = pattern.exec(str);
if (result) {
//textcontrol1.text = result[1];
trace(result[1]);
}
[^>]*
表示:零个或多个字符,但不是右括号>
[^"]+
表示:一个或多个字符,但不是引用
圆括号将其捕捉到result[1]
作为一般建议:保持你的正则表达式简单,不要把东西放到你不需要捕获的东西中(即不要将class=
或width=
添加到你的正则表达式中。