jquery里用正则提取汉字及在汉字前后加入通配符方便搜索的完整实例推荐 亲测 原创 收藏

文章标签: 正则
  • :
  • 12-20 17:29
  • :
  • 20次
  • :
  • 0条
  • 0赞

简介本文通过完整的实例来演示如何在jquery里使用正则的方法来提取文本中的汉字,及在汉字的前后加入通配符,方便我们用来搜索数据库。

站长做的web项目里,在实现搜索功能时,一般都是用“简单”的搜索匹配的方法,比如我们要搜索和“jquery 正则 汉字”相关的内容时,程序里要做的也只是把关键词里的空格替换为通配符“%”然后直接用来搜索数据加就行了,但这样就存在一个弊端,就是如果关键词比较具体的时候,我们往往搜索不到我们需要的内容,所以这就需要我们进一步的对关键词进行处理。

要进一步的处理关键词,首先需要我们了解如何用正则来匹配汉字:

一:jquery里用正则来匹配汉字的方法:

var v=$("#con").val();
var reg=/([^\u4e00-\u9fa5]+)/gi;
var hanzi=v.replace(reg,"");

上面的代码很简单,记住:"\u4e00-\u9fa5"是正则里用来匹配汉字的就行了。

二:jquery里用正则把所有的汉字前后加入通配符“%”:

var v=$("#con").val();    //这里获取到的就是要搜索的关键词
v="%"+v+"%";            //首先在关键词的前后加入通配符
v=v.replace(/\s/gi,"%");        //把关键词里的空格替换成通配符
var reg=/([\u4e00-\u9fa5])/gi;    //匹配获取所有的汉字
v=v.replace(reg,"\%$1\%");        //把每一个汉字的前后都加上通配符
v=v.replace(/\%+/gi,"%");    //把连接的多个通配符替换成一个

上面的代码里,在匹配获取汉字的那一行里,并没有加上"+"号,带上“+”号后,并不能在每个汉字的前后都加入通配符,用语言来解释很麻烦,下面用实例来说:

var v="jquery 正则 匹配 汉字";
var reg=/([\u4e00-\u9fa5]+)/gi;
var v=v.replace(reg,"\%$1\%");  //这时得到的结果是:jquery %正则% %匹配% %汉字%

//把正则里的+号去掉后:
var reg=/([\u4e00-\u9fa5])/gi;
var v=v.replace(reg,"\%$1\%");  //这时得到的结果是:jquery %正%%则% %匹%%配% %汉%%字%

大家可以根据自己的需要来编写正则,下面是完整的在线实例演示:

jquery正则提取汉字及注入符号的在线演示



您正在找的文章可能是: