这是我要匹配的字符串76c24efd-ec42-492a-92df-c62cfd4540a3
。以下正则表达式将匹配36个字符串长度的字符串和字母数字字符和“ - ”。
[a-zA-Z0-9\-]{36}
我正在尝试添加到此正则表达式,因此仅在<8 chars> - <4 chars> - <4 chars> - <4 chars> - <12 chars>
答案 0 :(得分:0)
以下内容将匹配一组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>