检查最后一个字符是否是连字符(-)的正则表达式,如果不是,则添加它。

3
我正在尝试做两件事:
  1. 删除字符串末尾的空格
  2. 如果破折号(-)不是字符串的最后一个字符,则将其添加到字符串的末尾
我的尝试只替换了字符串末尾的连字符和空格:
test = test.replace(/-\s*$/, "-");

我并不一定要使用正则表达式,只是想寻找最简洁的方法来完成这个任务。谢谢 :)

4个回答

3

test.replace(/(-?\s*)$/, "-") 在监视窗口中可以工作,但在我的代码中 test = test.replace(/(-?\s*)$/, "-") 只是将 test 设置为原来的值,并没有在末尾添加连字符。 - bflemi3
2
这里不需要括号。 - VisioN

2
使连字符变成可选项,这样它就可以适用于两种情况:
test = test.replace(/-?\s*$/, "-");
                      ^
                      |== Add this

对于 test -,它会返回 test - 吗? - VisioN

2
如果您不在乎末尾连字符的数量,那么这个解决方案可能适合您:
str.replace(/[-\s]*$/, '-');

测试:

"test"       --> "test-"
"test-"      --> "test-"
"test-  "    --> "test-"
"test  -"    --> "test-"
"test  -  "  --> "test-"

0

不需要正则表达式。尝试使用:

if(yourStr.slice(-1) !== "-"){
    yourStr = yourStr + "-";
} else{
    //code if hyphen is last char of string
}

注意:yourStr替换为您想要使用的字符串变量。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接