1

フラグが設定されていて文字列と一致しない正規表現を ingすると が返さmatchれるため、ユーザー入力文字列を絞り込むとエラーが発生するのではないかと思いますが、これは絞り込み不可能です。matchgnull

したがって、次の 2 つのオプションが残っていますが、私が知る限り、それらは同一です。しかし、私はそれを正しく理解していることを確認したいだけです。

    var tldMatcher = /[^.]+\.?$/g
      , tld = str.match(tldMatcher) ? str.match(tldMatcher)[0] : null;

...と...

    var tldMatcher = /[^.]+\.?$/g
      , tld = str.match(tldMatcher) && str.match(tldMatcher)[0];

何かご意見は?

4

1 に答える 1

1

個人的には、と一緒に使う|| []ときはいつも使っています。あれは:.matchg

var matches = str.match(/regex/g) || [];

これによりmatches、常に文字列の配列になります(ただし空の場合もあります)。あなたの場合、それはこのように行うことができます:

var tldMatcher = /[^.]+\.?$/g
  , tld = (str.match(tldMatcher) || [])[0];
于 2012-11-24T04:54:08.970 に答える