gpt4 book ai didi

javascript - 'attr=value' 样式输入的正则表达式

转载 作者:行者123 更新时间:2023-11-28 19:01:24 25 4
gpt4 key购买 nike

所以我必须获取 attr=value 格式的输入值。类似于 name=Johnsurname=Doe。该字符串可以包含数字,但不允许使用 = 以外的任何符号。现在,我需要验证 Javascript 中的字段。我已经有了一个正则表达式,类似于 /[a-zA-Z0-9]+[=]+[a-zA-Z0-9]+/。它工作正常。但是,我觉得可能有更好的正则表达式来做到这一点。另外,如果用户输入类似 name=John- 的内容,它就会允许。事实不应该是这样。如果你们能给我指明正确的方向,那就太好了。

var regexField = $('#regex-test'),
RegEx = /[a-zA-Z0-9]+[=]+[a-zA-Z0-9]+/,
isValid = function(element){
return RegEx.test(element.val());
};
$('#submit').click(function(e){
if(isValid(regexField)){
$('#err').hide();
return;
}
$('#err').show();
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<div id="err" style="display:none">
Please enter proper value!
</div>
<input type="text" id="regex-test" required/>
<button id="submit">Submit</button>

最佳答案

你的表情和你想要的相差不远。它允许 name=John- 的原因是因为没有锚定到字符串的末尾。例如,它还接受 #$%name=John-!?foo。要锚定到开头,请使用 ^$ 作为结尾。

您不需要将 = 放入字符类中(因为您只有一个选项);并且您绝对不想使用 + 对其进行量化,因为您只需要一个(而不是一个或多个)。

最后,您可以使用 i 标志使其不区分大小写,从而稍微简化一下。

最终,这会给你:

/^[a-z0-9]+=[a-z0-9]+$/i

如果您允许在属性和值中使用下划线,则可以使其变得更加简单:然后您可以将 [a-z0-9] 更改为 \w ...但这是你的决定:)

关于javascript - 'attr=value' 样式输入的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32467241/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com