JavaScriptで、右トリムを行う方法は?javascriptで右トリムする必要があります
私は、次のしている:
var s1 = "this is a test~";
var s = s1.rtrim('~')
が、正規表現を使用し
JavaScriptで、右トリムを行う方法は?javascriptで右トリムする必要があります
私は、次のしている:
var s1 = "this is a test~";
var s = s1.rtrim('~')
が、正規表現を使用し
成功しませんでした。特殊文字をエスケープすることを忘れないでください。
s1 = s1.replace(/~+$/, ''); //$ marks the end of a string
// ~+$ means: all ~ characters at the end of a string
完璧、ありがとう! –
正規表現を使用したソリューション:
"hi there~".replace(/~*$/, "")
はJavascriptにはトリム、LTRIM、またはRTRIM関数はありません。以下が原因でどのように正規表現取引ほとんどのブラウザで終了文字での正規表現よりも一般的に高速で、右のトリムのために
str.replace(/~*$/, '');
:
function rtrim(str, ch)
{
for (i = str.length - 1; i >= 0; i--)
{
if (ch != str.charAt(i))
{
str = str.substring(0, i + 1);
break;
}
}
return str;
}
必要に応じてStringプロトタイプを変更できます。文字列のプロトタイプを変更するのは一般的に嫌なことですが、私は個人的にはこのメソッドを好みます。
String.prototype.rtrim = function(s) {
return this.replace(new RegExp(s + "*$"),'');
};
はその後...
var s1 = "this is a test~";
var s = s1.rtrim('~');
alert(s);
を呼び出すこれは私が知っている、古いです。しかし、私はsubstrに何が間違っているのか見ていないのですか?
function rtrim(str, length) {
return str.substr(0, str.length - length);
}
ここでの唯一の問題は、文字列の末尾に任意の数の文字がある可能性があるということです。「this is test〜」の代わりに、「this is test ~~~」またはこれはまったくありません。テスト。あなたの場合は文字の種類にかかわらず、文字列から設定された文字数をトリミングするためにうまく動作します – bobkingof12vs
IMOこれは(ジャバスクリプトがネイティブstring.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 + "]*"), '');
};
使用例:
var str1 = ' 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 '
Googleでトップヒット:http://blog.stevenlevithan.com/archives/faster-trim-javascript – Tessmore