Javascript正则表达式为微笑图标替换

时间:2011-02-22 16:13:30

标签: javascript regex

有人可以使用regexp来替换<img src="etc"/>吗?

在所有这些情况下都不应该被替换:

  • :Dtest测试:Dtest - 从开头或开始
  • 测试:Dtest - 文本之间

在所有其他情况下,应将其替换为<img src="etc"/>

无法找出正确的模式。

谢谢;)

4 个答案:

答案 0 :(得分:1)

怎么样

string.replace(/:D(?=\s|$)/g, '<img src="etc"/>')

我尝试了here,如果我理解你的标准,它似乎有效。

答案 1 :(得分:0)

"bla :D bla:D".replace(/([^\w]|^)(:D)([^\w]|$)/g, '$1<img src="jeej.png"/>$3')

答案 2 :(得分:0)

你的例子(寻找“D”笑脸)可以用这个来解决:

var newStr = oldStr.replace(/([\W\b^]):-?D\b/g, '$1<img src="etc"/>');

如果你想要涵盖8):(:P :)等等,请不要忘记你需要其他模式。

如果您执行类似

的操作
/([\W\b^])([\:8B])-?([DP\(\)\*])(?=[\W\b$])/g

或者您想要允许的其他任何表情符号排列,您将在第2组和第3组匹配中捕获眼睛和嘴巴,这样您就可以决定要替换哪个图像。或者你可以使用字符串操作代替,这可能就是我要做的。

答案 3 :(得分:-1)

我会去

"text :D text :D.".replace(/\b:D\b/g, '<img src="etc" />');