在javascript中,如何进行正确的修剪?
我有以下内容:
var s1 = "this is a test~";
var s = s1.rtrim('~')
Run Code Online (Sandbox Code Playgroud)
但没有成功
Rob*_*b W 67
使用RegExp.别忘了逃避特殊角色.
s1 = s1.replace(/~+$/, ''); //$ marks the end of a string
// ~+$ means: all ~ characters at the end of a string
Run Code Online (Sandbox Code Playgroud)
Javascript 中没有 trim、ltrim 或 rtrim 函数。许多库都提供它们,但通常它们看起来像这样:
str.replace(/~*$/, '');
Run Code Online (Sandbox Code Playgroud)
对于右修剪,以下命令通常比正则表达式更快,因为正则表达式在大多数浏览器中处理结束字符的方式:
function rtrim(str, ch)
{
let i = str.length;
while (i-- && str.charAt(i) === ch);
return str.substring(0, i + 1);
}
console.log(rtrim("moo", "x"));
console.log(rtrim("moo", "o"));
console.log(rtrim("oo", "o"));
Run Code Online (Sandbox Code Playgroud)
如果您愿意,可以修改 String 原型。修改 String 原型通常是不受欢迎的,但我个人更喜欢这种方法,因为它使代码更干净恕我直言。
String.prototype.rtrim = function(s) {
return this.replace(new RegExp(s + "*$"),'');
};
Run Code Online (Sandbox Code Playgroud)
然后打电话...
var s1 = "this is a test~";
var s = s1.rtrim('~');
alert(s);
Run Code Online (Sandbox Code Playgroud)
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 mystring = ' jav '
var r1 = mystring.trim(); // result = 'jav'
var r2 = mystring.rtrim(); // result = ' jav'
var r3 = mystring.rtrim(' v'); // result = ' ja'
var r4 = mystring.ltrim(); // result = 'jav '
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
41236 次 |
最近记录: |