Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 正则表达式:匹配最后一个和倒数第二个字符_Javascript_Regex - Fatal编程技术网

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>")