Angular如何编写匹配->连接双单词、空行等格式的正则表达式
符合需求的正则表达式实现
你可以直接使用以下正则,适配JS/Angular环境:
// 字面量写法(推荐,无需额外转义) const validExp = /^\s*$|^\s*[^\n]+?\s*->\s*[^\n]+\s*$/mg; // RegExp构造函数写法(需要转义反斜杠) const validExpReg = new RegExp('^\\s*$|^\\s*[^\\n]+?\\s*->\\s*[^\\n]+\\s*$', 'mg');
规则说明
该正则完全覆盖所有提出的匹配要求:
- 匹配空字符串、仅包含
\r/\s/\t的空白行、仅包含\n的换行行(由^\s*$分支实现,\s本身包含空格、制表符、回车、换行等所有空白字符) - 匹配
word1->word2格式的内容,支持->前后携带任意空白 - 自动过滤
word1->、->word2这类不完整格式,要求->前后必须存在非换行的有效内容 - 支持
word1、word2包含数字、;、#等除\n之外的任意字符
如果要求word1中不能包含->字符,仅允许整行存在一个作为分隔符的->,可以调整正则为:
const validExp = /^\s*$|^\s*[^\n->]+\s*->\s*[^\n]+\s*$/mg;
修饰符说明
m:开启多行匹配模式,^和$会匹配每一行的开头和结尾g:全局匹配,可一次性匹配所有符合规则的行,不需要全局匹配可以删除该修饰符
验证示例
- 可匹配内容:
""、test1->test2、user#123 -> order;456、、\n - 不可匹配内容:
word1->、->word2、test->
内容的提问来源于stack exchange,提问作者overflowed
相关产品推荐
相关产品推荐

