javascript - 정규식을 찾을 수 없습니다. 도와주세요.
天蓬老师
天蓬老师 2017-05-19 10:31:59
0
2
439

코드:

으아아아

좀 혼란스럽네요. 왜 match2가 false인지, match1은 대체 무엇과 일치하나요?

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

모든 응답(2)
阿神

형님, 정규 표현식에 문제가 있습니다. 우선 정규 표현식 구성에는 두 가지 형태가 있습니다. 하나는 당신과 같고 다른 하나는 /abc/g입니다. /abc/g

看你的意思,你的正则表达式应该这样写:

var match1 = new RegExp('\S*//weibo\.com/p/\S*');
var match2 = new RegExp('\S*//weibo\.com/p/\S+');

你的少了反斜杠,转义失败

为什么?因为按照你的正则表达式,实际上:

var match1 = new RegExp('\S*//weibo\.com/p/\S*');
match1.source;
// "S*\/\/weibo.com\/p\/S*"

然后就是 *+

의미에 따라 정규식은 다음과 같이 작성되어야 합니다.

으아악

백슬래시가 누락되어 이스케이프 처리에 실패했습니다🎜 🎜왜? 정규 표현식에 따르면 실제로는 다음과 같습니다. 🎜 으아악 🎜그럼 *+의 차이가 있어서 첫 번째는 true이고 두 번째는 false입니다. 🎜 🎜정규 표현식을 구성할 때 이스케이프할 필요가 없도록 두 개의 슬래시를 사용하는 것이 좋습니다. 🎜 으아악
黄舟

match1: s는 0~1개 이상의 공백과 일치합니다. //이것을 이스케이프 처리하고 // 일치하는 항목이 '/'가 되도록 사용하는 것이 가장 좋습니다. 이는 백슬래시가 없으면 '.'와 일치합니다. 문자이며 마지막 s는 0~1개 이상의 공백과 일치합니다.
match2: 마지막 항목만 다릅니다(s+, 하나 이상의 공백). 그러나 문자열에는 분명히 p 뒤에 공백이 없으므로 false입니다

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿