各位大神 求助用正则表达式抽取jsp页面的中文
项目正在进行国际化工作,目前需要将页面中的中文提取出来(注释除外)供翻译人员进行翻译。
我尝试了用正则表达式去抽取中文,但是目前遇到了如下几个问题:
1、注释中的中文不好匹配,在jsp页面中有如下的注释情况: <% %> // /****/ <!-- -->(因为在jsp页面中可嵌入java代码、js代码、还有自身的html代码)
2、在jsp页面一行的文本中如果有类似的信息: "客户档案accountName,输入的文本超过最大长度200" ,则处理结果应该为:客户档案accountName,输入的文本超过最大长度200;而:
var Filter = {
doFilter: function(str){
if(!str
[解决办法]
typeof str !== 'string')return str;
for(var i = 0, len = this._filters.length; i < len; i++){
str = str.replace(this._filters[i], "");
}
return str;
},
_filters: [//private
/\/\*(?:.
[解决办法]
\n)*?\*\//g,
/\/\/.*/g,
/<\!--(?:.
[解决办法]
\n)*?-->/g
]
},
getter = /['"](?:.
[解决办法]
\n)*?[^\x00-\xff](?:.
[解决办法]
\n)*?['"]/g;
var testStr = "//测试\n" +
"var x = 1;\n" +
"/**\n" +
"中文\n" +
"*/\n" +
"<!--<span>测试中文</span>\n-->\n" +
"var y = '中文变量';\n" +
"var z = '变量加' + x + y\n";
testStr = Filter.doFilter(testStr);
var zhStr = testStr.match(getter);
for(var i = 0; i < zhStr.length; i++){
console.log(zhStr[i])
}