文字列から文字(:)を削除する

私は名前のような文字列を持っています:,電話:,電話:....と私のテーブルのように。私はjQueryを学び、テキストにアクセスすることができました。私のチュートリアルでは、 trim()を使用して空白を削除しています。しかし、私は各文字列の最後から ":"を削除したい(とはい、それは常に trim()メソッドを呼び出した後に終了します)。だからそれを達成する方法。

その私のコード:

<script type="text/javascript">
    $(function ()
    {
        $(':input[type=text], textarea').each
    (
    function ()
    {
        var newText = 'Please enter your ' +
    $(this).parent().prev().text().toLowerCase().trim();
        $(this).attr('value', newText);
    }).one('focus', function ()
    {
        this.value = '', this.className = ''
    }).addClass('Watermark').css('width', '300px');
    });
</script>

トリム( ":")は役に立たなかった...

4
jQueryを使用してそれを行う場合は、常にです。最後の文字を切り捨てるだけです。 stackoverflow.com/questions/4308934/…
追加された 著者 wkl,

10 答え

すべての文字を置き換えることができます:

var str = '::a:sd:';
str = str.replace(/:/g,'');//str = 'asd';

または、便利な rtrim()関数を使用してください:

String.prototype.rtrim = function(character) {
    var re = new RegExp(character + '*$', 'g');
    return this.replace(re, '');
};

var str = '::a:sd:';
str = str.rtrim(':');//str = '::a:sd';
10
追加された
このコードでは、最後の文字は常にコロンになると仮定していますが、必ずしも真ではない場合があります。これは末尾のコロンをトリミングしません、最後のコロンをトリムします。
追加された 著者 Peter Olson,
編集したコードを参照してください。
追加された 著者 Blender,
@Shautieh:いいえ、まだをトリムしますが、引数を追加するのを忘れてしまいました。更新されたコードが動作します。
追加された 著者 Blender,
replaceは最初のインスタンスを置き換えます:
追加された 著者 Jayendra,
まだ間違っています。あなたのrtrim関数は引数をとらないので、 ':'で呼ぶのは意味がありません。それがしているのは、もしあれば、文字列の最後にあるスペース文字(\ s)を削除するだけです。
追加された 著者 Shautieh,
@Blender:あなたは引数を忘れて、代わりにすべての場合に\ sを使用したので、「いいえ、それはまだありません:」しかし、更新されたコードは確かに正しいです。
追加された 著者 Shautieh,
Shautiehは正しい。私の答えのjsfiddleを見てください。
追加された 著者 weir,

この場合、単純な古いJavaScript 置き換え または< code> サブスクリプト メソッドを使用します。

最後の文字(正規表現end-of-string アンカー" $ ")。

"hi:".replace(/:$/, "")

hi

"hi".replace(/:$/, "")

hi

"h:i".replace(/:$/, "")

h:i

これはBlenderの答えにおける rtrim 関数の簡略化されたインラインバージョンです。

編集:ここでは、Blenderの修正された rtrim 関数のテストフィドルです。 RegExpは、指定された文字が複数のインスタンスで連続して終了する場合、その文字が複数連続して削除されることに注意してください(例では下に太字が表示されています)。

http://jsfiddle.net/fGrPb/5/

input = ':: a:sd:'出力= ':: a:sd'; input = 'hi:'出力= 'hi'; input = 'hi :::'出力= 'hi' ;入力= 'hi'出力= 'hi';入力= 'h:i'出力= 'h:i'

5
追加された
うん、ここをクリック: w3schools.com/jsref/jsref_substr.asp
追加された 著者 halfer,
ありがとう。すでにあなたが投稿した直前の編集でリンクされています。
追加された 著者 weir,

文字列の最後の文字を切り詰めるには、string.slice(0、-1)を使用します。

1
追加された

最後の文字がコロンかどうかがチェックされます。そうであれば、最後の文字は削除されます。

if (str[str.length - 1] === ":") {
  str = str.slice(0, -1);
}

末尾にコロンが複数ある場合は、 if の間に if を置き換えることができます。

while (str[str.length - 1] === ":") {
  str = str.slice(0, -1);
}

文字列と文字を受け取り、その文字の末尾のインスタンスをトリミングする汎用の trim 関数を作成することもできます:

var trim = function(str, chr) {
  while (str[str.length - 1] === ":") {
    str = str.slice(0, -1);
  }
  return str;
}
0
追加された
var a="name:";
var b=a.split(":");
alert(b[0]);
0
追加された

You can use a regular expression to remove the colon (:).


Replace one instance:

var with_colon = 'Stuff:';
var regex = /([^:]*):/; 
var without_colon = regex.exec(with_colon)[1];
alert(without_colon);

Result: Stuff


Replace all instances:

var with_colon = 'Stuff: Things:'; 
var without_colon = with_colon.replace(/([^:]*):/g,'$1'); 
alert(without_colon);

Result: Stuff Things

0
追加された

one way is to use lastIndexOf

var str='Name:, Call:, Phone:';
var index=str.lastIndexOf(":");
alert(index);
var s=str.substring(0,index);
alert(s);

DEMO

0
追加された
これは、最後の文字がコロンでない場合、奇妙なバグを引き起こします。文字が見つからない場合、 lastIndexOf-1 を返し、文字列の不要な切り捨てを引き起こす可能性があります。
追加された 著者 Peter Olson,
 function trim(str) {
       str = str.replace(/^:*/,"");
       return str.replace(/:*$/,"");
 }
0
追加された

str = str.substring(0、str.lastIndexOf( ":"));

最後のから文字列の最後まで(たとえば、の後ろの空白など)すべてが削除されることに注意してください。

0
追加された
var myStr = "something:";
myStr = myStr.slice(0, -1);
0
追加された
JavaScript - 日本のコミュニティ
JavaScript - 日本のコミュニティ
2 参加者の

日本人コミュニティのjavascript