要禁止输入双引号("
)、反斜杠(\
)、表情符号、空格和空行,可以使用以下正则表达式:
^[^"\\\s\p{Emoji}]+$
^
- 匹配字符串开头[^...]
- 否定字符类,匹配不在括号内的任何字符"
- 双引号\\
- 反斜杠(需要转义)\s
- 任何空白字符(包括空格、制表符、换行等)\p{Emoji}
- Unicode表情符号+
- 一个或多个前面的元素$
- 匹配字符串结尾function isValidInput(input) {
return /^[^"\\\s\p{Emoji}]+$/u.test(input);
}
import re
def is_valid_input(input_str):
return bool(re.fullmatch(r'^[^"\\\s\p{Emoji}]+$', input_str, re.UNICODE))
public boolean isValidInput(String input) {
return input.matches("^[^\"\\\\\\s\\p{Emoji}]+$");
}
function isValidInput($input) {
return preg_match('/^[^"\\\\\s\p{Emoji}]+$/u', $input) === 1;
}
u
标志)以正确匹配表情符号+
量词(如果允许空字符串,可以改为*
)如果某些环境不支持\p{Emoji}
,可以使用更广泛的Unicode范围来匹配表情符号:
^[^"\\\s\u{1F600}-\u{1F64F}\u{1F300}-\u{1F5FF}\u{1F680}-\u{1F6FF}\u{1F700}-\u{1F77F}\u{1F780}-\u{1F7FF}\u{1F800}-\u{1F8FF}\u{1F900}-\u{1F9FF}\u{1FA00}-\u{1FA6F}\u{1FA70}-\u{1FAFF}\u{2600}-\u{26FF}\u{2700}-\u{27BF}\u{FE00}-\u{FE0F}\u{1F900}-\u{1F9FF}]+$
这个正则表达式显式列出了常见的表情符号Unicode范围,但可能不如\p{Emoji}
简洁和全面。