博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
js 匹配含变量的正则表达式
阅读量:7071 次
发布时间:2019-06-28

本文共 1379 字,大约阅读时间需要 4 分钟。

今天工作的时候遇到要解析表情,先把最后解决的结果贴上来

/**解析内容,将内容中的表情进行替换*@param: Contens 要处理的字符串*@param: arrFaceList 表情数据*@param: webRoot 处理完显示的图片目录级别*/function replaceFace(Contens, arrFaceList, webRoot) {    $.each(arrFaceList.JDataList, function (i, faces) {        var faceName = eval("/\\[" + faces.ExpressionName + "]/ig");        var replaceHtml = ""        Contens = Contens.replace(faceName, replaceHtml);    });    return Contens;}

我遇到的问题:
1、js里的replace方法跟c#里的不一样,Js里的只替换第一个匹配项,而C#里匹配所有的匹配项。
     解决办法:用正则表达式匹配。正则中有个配置参数g是global全局匹配。ig是ignore case忽略大小写的全局匹配
2、接下来的问题是中括号是正则里的特殊符号,怎么办?
     解决办法:将前中括号[加转义字符\,注意,后中括号]不用加。见下面资料
3、可是正则表达式中有变量该怎么办呢?
     解决办法:用eval()方法来连接字符串。
4、为什么还是不行?
     解决办法:转义字符要写两次,因为在字符串"/\\["里的单斜杠本身也需要转义。

资料:正则表达式中的特殊字符(需要转义)

  • ^ 匹配输入字符串的开始位置,除非在方括号表达式中使用,此时它表示不接受该字符集合。要匹配 ^ 字符本身,请使用 \^。
  • $ 匹配输入字符串的结尾位置。如果设置了 RegExp 对象的 Multiline 属性,则 $ 也匹配 '\n' 或 '\r'。要匹配 $ 字符本身,请使用 \$。
  • . 匹配除换行符 \n 之外的任何单字符。要匹配 .,请使用 \。
  • \ 将下一个字符标记为或特殊字符、或原义字符、或后向引用、或八进制转义符。例如, 'n' 匹配字符 'n'。'\n' 匹配换行符。序列 '\\' 匹配 "\",而 '\(' 则匹配 "("。
  • | 指明两项之间的一个选择。要匹配 |,请使用 \|。
  • {
    标记限定符表达式的开始。要匹配 {,请使用 \{。
  • [ 标记一个中括号表达式的开始。要匹配 [,请使用 \[。
  • () 标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。要匹配这些字符,请使用 \( 和 \)。
  • * 匹配前面的子表达式零次或多次。要匹配 * 字符,请使用 \*。
  • + 匹配前面的子表达式一次或多次。要匹配 + 字符,请使用 \+。
  • ? 匹配前面的子表达式零次或一次,或指明一个非贪婪限定符。要匹配 ? 字符,请使用 \?。
  • PS:我的淘宝店铺新开业,经营各种桌游,棋牌,希望大伙儿能来看看!http://201314yes.taobao.com/

转载于:https://www.cnblogs.com/jenney-qiu/archive/2012/04/10/2441078.html

你可能感兴趣的文章
Ruby小例子
查看>>
sqlmap映射继承机制及映射字段顺序与SQL查询字段顺序无关
查看>>
Android 提示应用“正在发送大量短信”的解决办法
查看>>
JQuery和Servlet来实现跨域请求
查看>>
PHP泛域名应用
查看>>
左固定右边自适应框架
查看>>
Python进阶07 函数对象
查看>>
第一题
查看>>
linux启动过程
查看>>
超赞的CSS3进度条 可以随进度显示不同颜色
查看>>
ASP.NET MVC 5 - 查询Details和Delete方法
查看>>
checkboxlist 横向显示,自动换行
查看>>
MQ:Introducing Advanced Messaging
查看>>
[转]oracle 同义词 synonym
查看>>
Java List 生成 树
查看>>
使用ASP.Net WebAPI构建REST服务(五)——客户端
查看>>
VC中利用多线程技术实现线程之间的通信
查看>>
Mod_Python中文文档
查看>>
ASP.NET MVC学习之视图篇(1)
查看>>
OAF_OAF Framework常用函数汇总(概念)
查看>>