【发布时间】:2012-08-28 05:59:23
【问题描述】:
Javascript 的相对新手,正在寻找一种方法来删除字符串的最后一个字符(如果它是冒号)。
我知道myString = myString.replace('/^\\:/'); 可以用于行首,但不知道如何换入$ 字符以更改为行尾……有人可以纠正吗?
谢谢
【问题讨论】:
标签: javascript string replace
Javascript 的相对新手,正在寻找一种方法来删除字符串的最后一个字符(如果它是冒号)。
我知道myString = myString.replace('/^\\:/'); 可以用于行首,但不知道如何换入$ 字符以更改为行尾……有人可以纠正吗?
谢谢
【问题讨论】:
标签: javascript string replace
简单地尝试
myString = myString.replace(/:$/, '');
这将删除位于字符串末尾的:
【讨论】:
/\n+$/:量词应该跟在换行符后面,而不是结束分隔符
正则表达式文字 (/.../) 不应位于字符串中。更正您的代码以删除字符串开头的冒号,您会得到:
myString = myString.replace(/^\:/, '');
要匹配字符串末尾的冒号,请将$ 放在冒号之后而不是^ 之前:
myString = myString.replace(/\:$/, '');
你也可以使用纯字符串操作:
if (myString.charAt(myString.length - 1) == ':') {
myString = myString.substr(0, myString.length - 1);
}
【讨论】:
replace 语句中有许多正斜杠/反斜杠?
/.../ 是正则表达式文字。在正则表达式内部有一个反斜杠来转义冒号字符,因此它被解释为文字字符并且在表达式中没有特殊含义。 (我更正了上面的代码,它有双反斜杠用于转义模式以将其放入字符串中,即new Regex('^\\:'),您的原始代码是正则表达式文字和正则表达式字符串之间的某种混合。)
/.../ 格式,只有反斜杠 - 感谢您的解释。
$ 需要位于正则表达式的末尾以匹配 EOL。
/:$/
【讨论】: