一、正则表达式非匹配
正则表达式非匹配指的是在匹配时排除某些特定字符或模式,通常使用"^"表示非,例如:
var str = "hello world"; var pattern = /[^e]/g; console.log(str.match(pattern)); // ["h", "l", "l", "o", " ", "w", "o", "r", "l", "d"]
上面的代码中,"^"表示匹配除了"e"以外的任意字符。
在实际应用中,非匹配可以用于排除一些特定字符或标点符号,或者用于匹配除了某些规定字符集以外的内容。
二、正则表达式非括号
正则表达式非括号指的是在匹配时排除一组括号中的字符或模式。在括号之前加上"^"表示非,例如:
var str = "hello world"; var pattern = /[^eol]/g; console.log(str.match(pattern)); // ["h", "l", "l", "w", "r", "d"]
上面的代码中,"[^eol]"表示匹配除了"e"、"o"、"l"以外的任意字符。
非括号的应用场景与非匹配相似,但更灵活,因为可以排除一个字符集合而不只是单个字符。
三、正则表达式非数字
正则表达式非数字指的是在匹配时排除数字,通常使用"\D"表示非数字的字符,例如:
var str = "hello 123 world"; var pattern = /\D/g; console.log(str.replace(pattern, "")); // "123"
上面的代码中,"\D"表示匹配除了数字以外的任意字符,使用replace方法将匹配到的非数字字符替换为空字符串,保留数字。
非数字的应用场景很多,例如在输入文本框中只允许输入非数字字符。
四、正则表达式非字母
正则表达式非字母指的是在匹配时排除字母,通常使用"\W"表示非字母的字符,例如:
var str = "hello world 123"; var pattern = /\W/g; console.log(str.replace(pattern, "")); // "helloworld123"
上面的代码中,"\W"表示匹配除了字母以外的任意字符,使用replace方法将匹配到的非字母字符替换为空字符串。
非字母的应用场景很多,例如在输入文本框中只允许输入非字母字符。
五、正则表达式非贪婪匹配
正则表达式非贪婪匹配指的是在匹配时尽可能少地匹配字符,通常使用"?"表示非贪婪匹配,例如:
var str = ""; var pattern = /<.+?>/g; console.log(str.match(pattern)); // ["hello world
", ""]", "
", "
上面的代码中,"<.+?>"表示匹配"<"和">"之间的任意字符,"?"表示非贪婪匹配。
非贪婪匹配的应用场景很多,例如在匹配HTML标签时避免匹配到闭合标签之前的所有内容。
六、正则表达式非空字符串
正则表达式非空字符串指的是在匹配时排除空字符串,通常使用"\S"表示非空字符,例如:
var str1 = "hello world"; var str2 = " "; var pattern = /\S+/g; console.log(str1.match(pattern)); // ["hello", "world"] console.log(str2.match(pattern)); // null
上面的代码中,"\S+"表示匹配至少一个非空字符,null表示未匹配到任何非空字符。
非空字符串的应用场景很多,例如在校验表单输入框中是否为空。
七、正则表达式非数字和字母
正则表达式非数字和字母指的是在匹配时排除数字和字母,通常使用"\W"和"\D"组合使用表示非数字和字母的字符,例如:
var str = "hello world 123"; var pattern = /[^\w\d]+/g; console.log(str.split(pattern)); // ["hello", "world"]
上面的代码中,"[^\w\d]+"表示匹配除了数字和字母以外的任意字符,使用split方法将匹配到的非数字和字母字符作为分隔符分割字符串。
非数字和字母的应用场景很多,例如在校验密码时要求必须包含非数字和字母字符。
八、正则表达式非空验证
正则表达式非空验证指的是在匹配时验证字符串是否为空,通常使用"^$"表示匹配空字符串,再使用"^$"的非匹配表示非空字符串,例如:
var str1 = ""; var str2 = "hello world"; var pattern = /^[^\s]+$/; console.log(pattern.test(str1)); // false console.log(pattern.test(str2)); // true
上面的代码中,"^[^\s]+$"表示匹配至少一个非空字符的字符串,"^$"的非匹配表示非空字符串。
非空验证的应用场景很多,例如在用户注册中要求必须填写所有必填项。
九、正则表达式非字符串
正则表达式非字符串指的是在匹配时排除特定字符串,通常使用"(?!)"表示非,例如:
var str = "hello world"; var pattern = /(?!world)\w+/g; console.log(str.match(pattern)); // ["hello"]
上面的代码中,"(?!world)"表示排除匹配"world","\w+"表示匹配至少一个字母或数字字符的字符串。
非字符串的应用场景很多,例如在匹配URL时排除特定文件夹或文件。
十、正则表达式非数字字符
正则表达式非数字字符指的是在匹配时排除数字以外的字符,通常使用"\D"表示非数字字符,例如:
var str = "hello world 123"; var pattern = /[^\d]+/g; console.log(str.split(pattern)); // ["hello world ", ""]
上面的代码中,"[^\d]+"表示排除匹配至少一个数字字符,使用split方法将匹配到的非数字字符作为分隔符分割字符串。
非数字字符的应用场景很多,例如在校验表单输入框中只允许数字字符。