javascript - RegEx JavaScript - 字符串不能全是点

标签 javascript regex angular

我正在尝试验证 Angular2 形式的文件名字符串。 文件名字符串不能全是点,并且不能包含此字符\/? * ": < > |

我解决了第二个要求,我的正则表达式如下所示:

Validators.pattern('^[^\\\\:\*\?\"\<\>\|\/]+$')

但我不知道如何解决点要求。

最佳答案

您可以使用(?!\.+$)开头的负向预测将阻止匹配仅包含 1 个或多个点的字符串:

Validators.pattern('^(?!\\.+$)[^\\\\:*?"<>|/]+$')
                      ^^^^^^^^

甚至删除 ^最后$因为 Angular 会自动添加它们:

Validators.pattern('(?!\\.+$)[^\\\\:*?"<>|/]+')

请注意*?"<>|/字符不需要在字符类中转义。所有这些都被视为文字符号。

关于javascript - RegEx JavaScript - 字符串不能全是点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51823166/

相关文章:

c# - 用于拆分 Amazon S3 存储桶日志列的正则表达式?

javascript - 解析云代码嵌套.each查询

javascript - `$.post` 有多少是阻塞的?

javascript - jQuery .click() 不会触发,但 onclick 会触发

javascript - 告诉正则表达式不要做它应该做的事情。 (不要替换 $&)

java - 正则表达式: quantifying a non-capturing group

javascript - 什么是用新的 flexbox 替换 box-orient?

angular - PouchDB 关系型 pouch 和 pouchdb-find 与 Angular5/Typescript

javascript - 为什么当我运行这个Processing/Processing.js 草图时不显示它?

angular - 在 *ngIf 中加载动态组件 - createComponent 未定义