需要解决这样一个问题:
在js中:要把英文后面跟的省略号换一种英文字体(就是把…放到底下类似于...[三个英文句号])。
我想的解决办法是:var testStr = "<p style='font-family:宋体;'>呵呵……aaaa…aaaa…呵呵……</p>";
var pattern = /…(?!…)/ig;
var replaceStr = "<span style='font-family:arial;'>…</span>";
testStr = testStr.replace(pattern,replaceStr);
document.write(testStr);尝试了一下,不行。会把……的一半换掉,于是想把pattern换成
var pattern = /(?!…)…(?!…)/ig;结果,还是不行。然后想到这个[^]试了一下var pattern = /[^…]…(?!…)/ig;
依然不行各种百度,类似的问题基本没有。。于是第一次上csdn发个贴。当然这个问题有别的解决思路:
可以用split切一下,然后判断中文后面加……英文后面加
<span style='font-family:arial;'>…</span>但是我想我最开始的思路应该是可以实现的把,哪位大神来指点一二,万分感谢!貌似在CSDN这个编辑器里……都是在下面的啊js负向预查

解决方案 »

  1.   

    var testStr = "<p style='font-family:宋体;'>呵呵……aaaa…aaaa…呵呵……</p>";
    var pattern = /…(?!…)/ig;
    var replaceStr = "<span style='font-family:arial;'>…</span>";
    testStr = testStr.replace(pattern,replaceStr);
    document.write(testStr);
    testStr = testStr.replace(/…<span style='font-family:arial;'>…<\/span>/g, '……');
    document.write(testStr);
      

  2.   

    var pattern = /([a-z])…/ig;
    var replaceStr = "<span style='font-family:arial;'>…</span>";
    testStr = testStr.replace(pattern,RegExp.$1+replaceStr);
    或者testStr = testStr.replace(pattern,function($0,$1){
    console.log($1);
    return $1+replaceStr;
    });