プロが教えるわが家の防犯対策術!

matchの中の正規表現の記載について教えて下さい。

文字列の最後に「,」「.」があった時にこれを削除するために下記のようにプログラミングしてみました。
上手い方法を思いつかなかったので、最後に「,」があったときに「del」を文字列の最後に足して、replaceを用いて削除することをにしました。

削除したい文字を、一つずつ書いて削除させることは出来たのですが、まとめて配列化して下記のようにしてみたのですが、エラーが出てしまいました。また、削除したい文字はたくさんあるため、配列化もしくはそれに近いことが出来る必要があります。

正しくはどのように記載するのでしょうか?


また、文字列最後の指定した文字だけを削除するもっとスマートな方法がありましたら、教えていただけないでしょうか。よろしくお願いします。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
var t2 = "KJANN B CVA,";
delw = new Array("," , ".");
for (i=0; delw[i]; i++){
if (t2.match(/delw[i]$/)){
t2 += 'del';
t2 = t2.replace(",del","");
}
}
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

A 回答 (5件)

たんじゅんにこれではだめ?


t2 = t2.replace( /\.|,/g, '' );
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

質問が分かりにくくて申し訳ありません。

削除したいものは文字列の最後にあった場合であることと。
例では2つ(「,」と「.」)示しましたが、実際には複数あるため配列で削除したい文字をリスト化しておきたいです。

お礼日時:2010/04/09 00:38

最後の・・・であれば$がいるのでは?



t2 = t2.replace(/(\.|,)$/,'');
    • good
    • 0
この回答へのお礼

質問が分かりにくくて申し訳ありません。

削除したい文字は複数あるので配列化しておきたいです。

お礼日時:2010/04/09 00:40

>また、削除したい文字はたくさんあるため、配列化もしくはそれに


>近いことが出来る必要があります。
配列にいれてあるとするなら…

var t2 = "KJANN B CVA,";
delw = new Array("," , ".");
t2 = t2.replace(new RegExp('[' + delw.join('') + ']$'), '');

みたいなのでは?
確か、[]内はエスケープ不要だったと思うけれど、確認しておいてください。ただし、最初に「^」を持ってきたりすると違う意味になっちゃうので、注意が必要だけれど…
    • good
    • 0
この回答へのお礼

ありがとうございます。

質問が悪い中、希望通りのことが出来ました。

大変勉強になりました。

ありがとうございました。

お礼日時:2010/04/09 00:42

g ?

    • good
    • 0

$なので… > #4

    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!