日期:2014-05-16  浏览次数:20581 次

JS正则如何提取多个关键字?
下面这段JS正则如何编写? 

提供字符串:河北省 衡水市 武强县 河北省衡水市武强县北牌村,新河街道2号 
提供关键字:北京市、上海市、县、村 

要求 
1、从字符串中提取存在的关键字 
结果:县,村 

2、提取关键字+关键字的前面一个字 
结果:强县,牌村 

3、提取关键字+关键字的前面二个字 
结果:武强县,北牌村 

4、提取关键字的前面一个字 
结果:强,牌 

5、提取关键字的前面二个字 
结果:武强,北牌 

最终用正则提取结果为:县,村,强县,牌村,武强县,北牌村,强,牌,武强,北牌
JavaScript 正则

------解决方案--------------------

var ds = "河北省 衡水市 武强县 河北省衡水市武强县北牌村,新河街道2号";
//1、从字符串中提取存在的关键字
alert(ds.match(/[县村]/g));

//2、提取关键字+关键字的前面一个字 
alert(ds.match(/.[县村]/g));

//3、提取关键字+关键字的前面二个字 
alert(ds.match(/..[县村]/g));

//4、提取关键字的前面一个字 
alert(ds.match(/.(?=[县村])/g));

//5、提取关键字的前面二个字 
alert(ds.match(/..(?=[县村])/g));