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

时间:2014-03-20 18:37:22

标签: javascript regex

我正在尝试做两件事:

  1. 删除字符串末尾的空格
  2. 如果连字符( - )不是字符串中的最后一个字符,则将其添加到字符串的末尾
  3. 我的尝试只会在最后替换连字符和空格:

    test = test.replace(/-\s*$/, "-");
    

    我不是在正则表达式上寻找最干净的方法。谢谢:))

4 个答案:

答案 0 :(得分:2)

使连字符可选,它适用于两种情况:

test = test.replace(/-?\s*$/, "-");
                      ^
                      |== Add this

答案 1 :(得分:2)

试试这个,在这里工作http://jsfiddle.net/dukZC/

test.replace(/(-?\s*)$/, "-");

答案 2 :(得分:1)

如果您不关心连字符的数量,那么此解决方案可能适合您:

str.replace(/[-\s]*$/, '-');

<强>测试:

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

答案 3 :(得分:0)

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

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

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