次の文字列に基づいて
...here..
..there...
.their.here.
.
javascriptを使用して、すべてのスペースを削除するトリムのように、文字列の先頭と末尾を削除するにはどうすればよいですか
出力は
here
there
their.here
次の文字列に基づいて
...here..
..there...
.their.here.
.
javascriptを使用して、すべてのスペースを削除するトリムのように、文字列の先頭と末尾を削除するにはどうすればよいですか
出力は
here
there
their.here
これらは、このタスクの RegEx が次の理由です/(^\.+|\.+$)/mg
。
内側/()/
には、文字列内で見つけたい部分文字列のパターンを記述します。
/(ol)/
これにより、文字列ol
内の部分文字列が検索されます。
var x = "colt".replace(/(ol)/, 'a');
あなたに与えます x == "cat"
;
^\.+|\.+$
inは記号[手段または]/()/
によって 2 つの部分に分けられます。|
^\.+
と\.+$
^\.+
.
最初にできるだけ 多くを見つけることを意味します。
^
開始時を意味します。\ は文字をエスケープします。文字の後ろに追加+
するとは、その文字を 1 つ以上含む任意の文字列に一致することを意味します
\.+$
.
最後にできるだけ多くを見つけることを意味します。
$
最後にという意味です。
m
ビハインドは、/()/
文字列に改行文字または改行文字が含まれている場合に、^ および $ 演算子が文字列境界ではなく改行境界に対して一致するように指定するために使用されます。
g
behindはグローバル マッチを実行するために使用されます。/()/
そのため、最初のマッチの後に停止するのではなく、すべてのマッチを検索します。
RegEx の詳細については、このガイドをご覧ください。
次の正規表現を使用してみてください
var text = '...here..\n..there...\n.their.here.';
var replaced = text.replace(/(^\.+|\.+$)/mg, '');
正規表現を使用/(^\.+|\.+$)/mg
^
最初に代表する\.+
1 つまたは複数のピリオド$
最後に表すそれで:
var text = '...here..\n..there...\n.their.here.';
alert(text.replace(/(^\.+|\.+$)/mg, ''));
判読できない場合は、もう少しコードゴルフっぽい、非正規表現のプロトタイプ拡張:
String.prototype.strim = function(needle) {
var out = this;
while (0 === out.indexOf(needle))
out = out.substr(needle.length);
while (out.length === out.lastIndexOf(needle) + needle.length)
out = out.slice(0,out.length-needle.length);
return out;
}
var spam = "this is a string that ends with thisthis";
alert("#" + spam.strim("this") + "#");
JavaScript置換で正規表現を使用する
var res = s.replace(/(^\.+|\.+$)/mg, '');