我想做一个正则表达式来验证特定类型的字符串。
验证字符串的条件如下:
- 字符串不应包含 \(反斜杠)、/(正
斜杠)、:(冒号)、*(星号)、? (问号), " (双
引号), < (左尖括号), > (右尖括号), | (竖线) - 不要包含连字符 (-) 或句点 (.) 作为字符串的第一个或最后
一个字符。
我尝试了很多但没有取得任何成功,因为我需要满足所有条件的单个正则表达式。
我想做一个正则表达式来验证特定类型的字符串。
验证字符串的条件如下:
我尝试了很多但没有取得任何成功,因为我需要满足所有条件的单个正则表达式。
正则表达式可能包含所谓的“类”、预定义的或自定义的字符集。尝试使用预定义的 [:alpha:] 或自定义的 [0-9*.><] 等。了解使用“^”字符进行类否定,并通过在特殊字符前面加上“\”来转义特殊字符。
尝试:
/^[^.\-][^\/:*?"<>|]+[^.\-]$/
编辑:这个正则表达式应该工作:
/^(?![.\-])(?:[^\\\/:*?"<>|])*[^.\-\\\/:*?"<>|]$/
但是正如您所看到的,它变得非常难以阅读和丑陋,我认为您最好使用如下函数逐步完成它:
function isValidString(str) {
return /^[^.\-]/.test(str) &&
/[^.\-]$/.test(str) &&
/[^\\\/:*?"<>|]+/.test(str);
}