Code :
var match1 = new RegExp('\S*//weibo\.com/p/\S*');
var match2 = new RegExp('\S*//weibo\.com/p/\S+');
match1.test('http://weibo.com/p/12345/myfollow?relate=fans#place');//true
match2.test('http://weibo.com/p/12345/myfollow?relate=fans#place');//false
Je suis un peu confus, pourquoi match2 est faux, et à quoi correspond match1 ?
Frère, il y a quelque chose qui ne va pas avec votre expression régulière. Tout d'abord, il existe deux formes de construction d'expression régulière, l'une est comme la vôtre et l'autre est
/abc/g
./abc/g
。看你的意思,你的正则表达式应该这样写:
你的少了反斜杠,转义失败
为什么?因为按照你的正则表达式,实际上:
然后就是
Selon ce que vous voulez dire, votre expression régulière devrait s'écrire comme ceci :*
和+
*
et+
, donc le premier est vrai et le second est faux. 🎜 🎜Il est recommandé d'utiliser deux barres obliques lors de la construction d'une expression régulière, afin qu'il n'y ait pas besoin d'échappement : 🎜 rrreeematch1 : s correspond à 0 à 1 espace ou plus. //Il est préférable d'échapper à ceci et d'utiliser // pour que celui qui correspond soit '/'. Cela correspond à '.', s'il n'y a pas de barre oblique inverse. caractère, et le dernier s correspond à 0 à 1 espace ou plus.
match2 : Seul le dernier est différent, s+, un ou plusieurs espaces, mais votre chaîne n'a évidemment pas d'espace après p, donc c'est faux