var url = 'https://mp.weixin.qq.com/s?__biz=MzAxNjczMTQxMA==&mid=504131096&idx=1&sn=c2fe41152807821b7916fa9539a0cf87&scene=1&srcid=0718JR98ETFngTl6mDsNRfhK&key=77421cf58af4a65374324bd2f16d7fdd913230b5ab4bd48a72759cc99919893795265ff20c0c8a79c676e636f789899c&ascene=0&uin=MjAzOTExMTUxMg%3D%3D&devicetype=iMac15%2C1+OSX+OSX+10.11.5+build(15F34)&version=11020201&pass_ticket=kA76WNrCKCEZ3JyEii3tYs88BCmLEM%2FI4LPD%2FtHBzoPjYzI9t7seUadtUUVQ9677';
var reg = /^(http(s)?:\/\/)?(([\w\.]+)\.(?:com|cn|love|net|com\.cn|org)(\/|#|!|%|\w|\d|&|\?|-|=|~|\.|\+)*)$/;
url.match(reg);
URLを検証するかどうかをテストしたいが、matchステートメントはプロセスをCRASHに導く! - ブラウザやiOSアプリケーションは、後で応答しません、CPUは90%+常に、無限ループ内にありますか? 私のregが間違っているのですか、これは正規表現のバグですか?これは正規表現のバグですか?
私はJavaScript(http://regexr.com/)、ノード、およびiOSでテストしましたが、タイムアウトか応答なし(クラッシュ)です。
1つのことは確実です。問題は壊滅的なバックトラッキングです。 '(\ | | | | |%| \ w | \ d |&| \?| - | = |〜| \。| \ +)*'グループがそれを殺して、 \ /#!%\ w&?\ - =〜。+] * '。 –
http://www.regular-expressions.info/catastrophic.html – daveoncode