2012-04-25 7 views
2
var creatingidmatch='website.com'.match(/.idv.tw|.firm.in|.gen.in|.nom.es|.nom.co|.me.uk|.net.ag|.net.br|.net.bz|.net.co|.net.in|.net.nz|.com.ag|.com.br|.com.bz|.com.co|.com.es|.com.mx|.com.tw|.org.ag|.org.tw|.org.in|.org.uk|.org.nz|.org.es|.co.in|.co.uk|.co.nz|.asia|.mobi|.info|.com|.org|.net|.jobs|.biz|.xxx|.ca|.mx|.tv|.ws|.ag|.am|.at|.be|.bz|.cc|.de|.es|.eu|.fm|.fr|.gs|.in|.it|.jp|.ms|.nl|.nu|.se|.tc|.tk|.tw|.vg|.me|.co|.us/gi); 
alert(creatingidmatch); 

これはから来る '座る' さ不可解な正規表現マッチングおかしな

sit,.com 

を返します? (なぜか、私の文字列の '座っている'部分を返すのはなぜですか?)

+0

良い点はい私はそれを意味します、ありがとう。 –

答えて

5

sit部分は、正規表現のこの部分から来ています:.it。正規表現内の.は、改行以外のものと一致します。したがって、.sに一致し、itは次のように一致します。itあなたはエスケープする必要があります。あなたがそれにマッチするようにしたいならば。 |後のすべての項目は、あなたが最初のサフィックスのすべてに続くことを照合することによって、正規表現を少し簡略化することができ.から始まるので

\.it 

リテラル。ここで更新された正規表現

/\.(idv\.tw|firm\.in|gen\.in|nom\.es|nom\.co|me\.uk|net\.ag|net\.br|net\.bz|net\.co|net\.in|net\.nz|com\.ag|com\.br|com\.bz|com\.co|com\.es|com\.mx|com\.tw|org\.ag|org\.tw|org\.in|org\.uk|org\.nz|org\.es|co\.in|co\.uk|co\.nz|asia|mobi|info|com|org|net|jobs|biz|xxx|ca|mx|tv|ws|ag|am|at|be|bz|cc|de|es|eu|fm|fr|gs|in|it|jp|ms|nl|nu|se|tc|tk|tw|vg|me|co|us)/gi; 
5

'sit'は '.it'と '。任意の文字に一致します。

+0

だから、各拡張子は\ .idv \ .tw | \ firm \ .in |のように見える必要があります。 –

1

は次のようでくださいです: ''

var creatingidmatch = 'website.com'.match(/\.idv\.tw|\.firm\.in| ... 
1

文字とは、改行文字以外の文字と一致することを意味します。

'sit'は「.it」条件に一致します。

'のすべてをエスケープする必要があります。

関連する問題