首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 媒体动画 > flex >

Flex ActionScript 施用正则解析js代码

2013-01-01 
Flex ActionScript 使用正则解析js代码需要要Flex 程序内部,使用正则表达式解析下面的js代码:(下面的代码

Flex ActionScript 使用正则解析js代码

需要要Flex 程序内部,使用正则表达式解析下面的js代码:
(下面的代码来源于:http://j.maxmind.com/app/geoip.js)


function geoip_country_code() { return 'CN'; }
function geoip_country_name() { return 'China'; }
function geoip_city()         { return 'Wuhan'; }
function geoip_region()       { return '12'; }
function geoip_region_name()  { return 'Hubei'; }
function geoip_latitude()     { return '30.5801'; }
function geoip_longitude()    { return '114.2734'; }
function geoip_postal_code()  { return ''; }
function geoip_area_code()    { return ''; }
function geoip_metro_code()   { return ''; }


通过函数名,得到返回值:
如: geoip_country_code, 则得到 CN
    geoip_country_name, 则得到 China


替代方案: 如果有能返回xml格式数据的也可以,这样Flex能很方便的处理!!


谢谢!!
[解决办法]
给个正则吧,这没必要用正则,用switch多好的
/function\s*(.*?)\s*\{\s*return \s*(.*?);\s*\}/gi
取第一个分组和第二个分组就行了
[解决办法]
你的需求看起来还是很迷糊啊...是想知道如何通过Flex调用JS?
[解决办法]
看楼主好舍得给分哦。
我简单些了一下把上面的字符串转换成xml。其实没什么技术含量。如果需要改就说话。

var reg:RegExp = /function\s*(.*)\(\)\s*{\s*return\s*'(.*)'.*}/ig;
var str:String = txt.text;

var obj:Object = reg.exec(str);
var xml:XML;
var xmls:String;
while (obj != null)
{
xmls +=  "<name><fun>" + obj[1] + "</fun><value>" + obj[2] + "</value></name>\n";
obj = reg.exec(str);
}
xml = XML("<body>" + xmls + "</body>");

热点排行