在javascript中的RTrim

Nat*_*Pet 40 javascript

我遇到了jQuery修剪的问题.我在jQuery中有一个字符串:

var string1;
string1 = "one~two~";
Run Code Online (Sandbox Code Playgroud)

如何修剪尾部波浪号?

Gab*_*oli 79

.trim()jQuery 的方法是指空格.

描述:从字符串的开头和结尾删除空格.


你需要

string1.replace(/~+$/,'');
Run Code Online (Sandbox Code Playgroud)

这将删除所有尾随~.

所以one~two~~~~~也会变成one~two

  • @armin,不会因为最后的`$`而不会.这意味着`~`系列必须位于字符串的末尾.. (3认同)
  • @Armin:不,不会.它匹配一个或多个`~`后跟字符串的结尾. (2认同)

Kon*_*rak 9

只需使用javascript替换将最后一个字符串更改为空:

string1.replace(/~+$/g,"");
Run Code Online (Sandbox Code Playgroud)


Jav*_*vid 9

IMO 这是进行右/左修剪的最佳方式,因此具有完整的修剪功能(因为 javascriptstring.trim本身支持)

String.prototype.rtrim = function (s) {
    if (s == undefined)
        s = '\\s';
    return this.replace(new RegExp("[" + s + "]*$"), '');
};
String.prototype.ltrim = function (s) {
    if (s == undefined)
        s = '\\s';
    return this.replace(new RegExp("^[" + s + "]*"), '');
};
Run Code Online (Sandbox Code Playgroud)

用法示例:

var str1 = '   jav ~'
var r1 = mystring.rtrim('~'); // result = '   jav ' <= what OP is requesting
var r2 = mystring.rtrim(' ~'); // result = '   jav'
var r3 = mystring.ltrim();      // result = 'jav ~'
Run Code Online (Sandbox Code Playgroud)

PS如果您为rtrimor指定参数ltrim,请确保使用与正则表达式兼容的字符串。例如,如果您想执行rtrimby [,则应使用:somestring.rtrim('\\[') 如果您不想手动转义字符串,则可以使用 regex-escape 函数(如果愿意)。请参阅此处的答案