正则表达式以匹配以破折号分隔的组中的字符数



这是我想要匹配76c24efd-ec42-492a-92df-c62cfd4540a3字符串。以下正则表达式将匹配带有字母数字字符和"-"的 36 个字符长度字符串。

[a-zA-Z0-9-]{36}

我正在尝试添加到此正则表达式中,因此它仅在以下情况下匹配<8 chars> - <4 chars> - <4 chars> - <4 chars> - <12 chars>

以下内容将匹配一组 8 个字符,后跟一个破折号,然后匹配一组 4 个字符,后跟短划线 3 次,然后匹配一组 12 个字符。

^[a-z0-9]{8}-(?:[a-z0-9]{4}-){3}[a-z0-9]{12}$/

这是一个简短的JavaScript测试,显示了结果。

$('.test').each(function(row, item) {
   var val = $($(item).children()[0]).html()
   var result = /^[a-z0-9]{8}-(?:[a-z0-9]{4}-){3}[a-z0-9]{12}$/gi.test(val);
   $($(item).children()[1]).html(result.toString())
});
th {
   text-align:left;
   padding-right:10px;
}
td {
    border: 1px solid #ccc;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table style="border: 1px solid black">
   <tr><th>Test</th><th>Result</th><th>Desired Result</th></tr>
   <tr class="test"><td>76c24efd-ec42-492a-92df-c62cfd4540a3</td><td></td><td>Good</td></tr>
   <tr class="test"><td>76c24efd-ecz42-492a-92df-c62cfd4540a3</td><td></td><td>Bad Length - 2nd segment too long</td></tr>
   <tr class="test"><td>76c24efd-ec2-492a-92df-c62cfd4540a31</td><td></td><td>Bad Segment Lengths</td></tr>
   <tr class="test"><td>76$24efd-ec42-492a-92df-c62cfd4540a3</td><td></td><td>Bad Char ($)</td></tr>
</table>

最新更新