Javascript正则表达式:替换变量
Javascript regular expressions: substituting variables
我需要一只手将变量分解为正则表达式
这条线路运行良好:
subject = subject.replace(/<a title="Smile"><img.+?<'/a>/g, emoticons[1]);
我需要把"微笑"这个词换成一个变量。
我尝试了一些不同的配置,比如:
subject = subject.replace(/<a title="'+emoLanguage[0]+'"><img.+?<'/a>/g, emoticons[1]);
但我无法使变量工作。
怎么回事??
首先我想说,您可能不应该使用正则表达式来解析/修复HTML。话虽如此,这应该起作用:
var re = new RegExp("<a title='"" + emoLanguage[0] + "'"><img.+?</a>", "g");
subject = subject.replace(re, emoticons[1]);
更好的解决方案是使用jQuery。解决方案要漂亮得多:
jQuery("a[title='" + emoLanguage[0] + "']").replaceWith(emoticons[1]);
这假设emoticons[1]
中的数据是HTML。
当然,仅仅为这个小东西导入jQuery可能有些过头了,但我相信你会发现,它可能会让你的Javascript中的其他东西变得更加简单和优雅。
使用new Regexp()
构造函数来创建正则表达式,而不是文字正则表达式。
请注意,您必须正确地转义字符串,因为许多字符在regexp中具有特殊含义。
在这种情况下,您必须使用RegExp对象coinstructor:
var pattern = new RegExp('<a title="'+emoLanguage[0]+'"><img.+?</a>',"g");
subject = subject.replace(pattern, emoticons[1]);
相关文章:
- Javascript链接和变量替换
- Javascript 变量替换
- 如何在javascript中用字符串变量替换一段文本
- 在Javascript中,如何用变量替换元素的名称
- 如果两个值都会动态变化,则用变量替换某个字符串的一部分 - Javascript
- 为什么 Meteor.users.findOne({用户名: “test”}) 返回一个对象,但用具有相同值的变量替换
- 将数组映射变量替换为实际的变量名称/字符串
- 将实例变量替换为局部变量
- 用javascript中的变量替换运算符
- 如何用jquery中定义的变量替换数据值的值
- 使用jquery变量替换句点、冒号或任何其他字符的通用regexp
- javascript/用全局变量替换文本
- JS使用变量替换所有出现的字符串
- 用相同的命名变量替换字符串
- envsubst将javascript文件中的变量替换为环境变量
- 用函数(变量)替换变量
- 使用变量替换多个字符串
- JavaScript -使用变量替换子字符串
- 我不能用正则表达式和变量替换字符
- 用javascript变量替换表单中的隐藏值