Javascript 正则表达式:匹配最后一个和倒数第二个字符
我需要将最后两个字符包装在一个单独的Javascript 正则表达式:匹配最后一个和倒数第二个字符,javascript,regex,Javascript,Regex,我需要将最后两个字符包装在一个单独的字符串中: -1:23//这就是我所拥有的 -这就是我想要的 下面的字符与最后一个字符匹配,但如何使其与最后一个字符匹配 str.replace(/(.$)/, "<span>$1</span>"); str.replace(/(.$)/,“$1”); 谢谢:)您可以使用 .replace(/.(?=.?$)/g, "<span>$&</span>") 模式匹配 \d-一个数字 (?=\d?$)
字符串中:
-1:23//这就是我所拥有的
-这就是我想要的
下面的字符与最后一个字符匹配,但如何使其与最后一个字符匹配
str.replace(/(.$)/, "<span>$1</span>");
str.replace(/(.$)/,“$1”);
谢谢:)您可以使用
.replace(/.(?=.?$)/g, "<span>$&</span>")
模式匹配
-一个数字\d
-后跟字符串结尾或数字和字符串结尾(?=\d?$)
$&
是一个替换反向引用,它引用字符串替换模式中的整个匹配值
JS演示:
console.log(“-1:23”)。替换(/。(?=。?$)/g,“$&”);
console.log(“-1:23”)。替换(/\d(?=\d?$)/g,“$&”)
您可以在最后一个组之前添加另一个组,该组也匹配单个字符(()
),然后使用引用($1
和$2
)包装每个组:
var str='-1:23'。替换(/($)/,“$1$2”)
console.log(str)代码>为什么不使用显式量词{2}$
应该达到同样的效果,对吗?@Vogel612{2}$
模式将产生。这是我的第一个想法,这就是为什么我结束了这个问题。当我意识到情况并非如此时,我重新开始。我还添加了一个dynamoc解决方案,将N个字符包装在字符串的末尾。
.replace(/.(?=.?$)/g, "<span>$&</span>")
.replace(/\d(?=\d?$)/g, "<span>$&</span>")