67

Javascript 的相对新手,正在寻找一种方法来删除字符串的最后一个字符(如果它是冒号)。

我知道myString = myString.replace('/^\\:/');将在行首工作,但不知道如何交换$字符以更改到行尾……有人可以纠正吗?

谢谢

4

3 回答 3

116

正则表达式文字 ( /.../) 不应位于字符串中。更正您的代码以删除字符串开头的冒号,您将获得:

myString = myString.replace(/^\:/, '');

要匹配字符串末尾的冒号,请将其放在$冒号之后而不是^之前:

myString = myString.replace(/\:$/, '');

您也可以使用纯字符串操作来做到这一点:

if (myString.charAt(myString.length - 1) == ':') {
  myString = myString.substr(0, myString.length - 1);
}
于 2012-09-03T13:39:02.670 回答
38

简单地尝试

myString = myString.replace(/:$/, '');

这将:在字符串末尾时删除

于 2012-09-03T13:30:25.640 回答
0

$需要位于正则表达式的末尾以匹配 EOL。

/:$/

于 2012-09-03T13:31:52.160 回答