1

私はさまざまな機能を試して、 DIVblahhhh@blahhh.blahhh内の任意のものを置き換えようとしましたが、成功しませんでした。contentEditable正規表現に問題があるか、Chrome の既存のプロトタイプではないという事実に問題があるため、Web で見つけた[String].replaceAllものを使用する必要があります。replaceAll

文字列内のすべての電子メールをカスタム パターンに置き換えるクロスブラウザ (Chrome/WebKit/Moz) アルゴリズムはどうあるべきですか?

4

1 に答える 1

4

replaceAll確かに標準関数ではありませんが、正規表現は機能するはずです:

このような単純なもの:

[A-Z0-9._%+-]+@[A-Z0-9.-]+.[AZ]{2,}

すでにかなりうまく機能しています:

var s = "sample@mail.com is a sample email address with an @, as is some.mail@some.government";
s.replace(/([A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,})/ig, '<tag>$1</tag>');
// "<tag>sample@mail.com</tag> is a sample email address with an @, as is <tag>some.mail@some.government</tag>";

# Match:
# (              --> Start group
# [A-Z0-9._%+-]+ --> one or more characters within the specified range,
# @              --> Followed by an `@`,
# [A-Z0-9.-]+    --> Followed by some more characters,
# \.             --> Followed by an dot,
# [A-Z]{2,}      --> followed by 2 or more letters,
# )              --> End group.
# ig             --> (i)gnore case, (g)lobal.
# In the replacement:
# $1             --> Content of the first pair of `()`
于 2013-01-07T07:55:01.617 に答える