1.匹配啥
/a/.test("javascript")
/a/.test("jscript")
- 匹配以a开头的,加上元字符^(开始位置标识),写成:/ ^a /
/^a/.test("javascript")
/^a/.test("abc")
- 以a结尾的,加上元字符$(结束位置标识),写找:/ a $/
/a$/.test("javascript")
/a$/.test("cba")
- 匹配字符a或b,把对应字符放在中括号里:/[ab]/
/[ab]/.test("javascript")
/[ab]/.test("jscript")
- 匹配字符串abc或xyz,则用|分开:/abc|xyz/
/abc|xyz/.test("abbxyz")
- 匹配前面的 :exp1(?=exp2):匹配exp2前面的exp1,匹配结果不包括exp2
/java(?=script)/.test("javascript,jscript,typescript")
- 匹配后面的:(?<=exp2)exp1:匹配exp2后面的exp1,匹配结果不包含exp2
/(?<=java)script/.test("javascript,jscript,typescript")
2.匹配不是啥(取反)
- 不想匹配字符a,在中括号里面加上元字符^,即:/[ ^a]/
/[^a]/.test('aaa')
/[^a]/.test('abc')
/^[^a]/.test('javascript')
/^[^a]/.test('abc')
/[^a]$/.test('javascript')
/[^a]$/.test('java')
/[^abc].test('ab')
- 匹配后面不是xxx:exp1(?!exp2):匹配后面不是exp2的exp1,匹配结果不包含exp2
/java(?!script)/.test('javascript')
/java(?!script)/.test('javascript,javaee')
- 匹配前面不是xxx:(?<!exp2)exp1:匹配前面不是exp2的exp1,匹配结果不包含exp2
/(?<!java)script/.test('javascript')
/(?<!java)script/.test('typescript')
- 不匹配包含abc的字符串:/^((?!abc)\w)+$/
\w:这个位置后面可以是其他字符
+可以连续出现多个
/^((?!abc)\w)+$/.test("cbacbac")
/^((?!abc)\w)+$/.test("cbacbabc")