gpt4 book ai didi

javascript - 只接受字母和空格、数字和空格以及不同框中带有空格的字母和数字

转载 作者:行者123 更新时间:2023-12-02 14:14:45 25 4
gpt4 key购买 nike

我不明白为什么这些正则表达式不能正常工作。

我需要 3 种不同类型的表达式检查,但这些方法并没有像预期的那样完全工作。它们“部分”工作,如 #output2 的示例所示,其中响应结果无效,但它没有捕获第一个响应。我假设我缺少一些小东西?

我正在尝试进行以下验证...

编辑以进行澄清,抱歉!

var 字母 - 应该只接受绝对没有数字或特殊字符的字母,但仍然允许空格,但最多只能有 1 个空格(因此不能有两个空格),并且不能以空格开头或结尾。空字符串仍应视为有效。

var 数字 - 与 var 字母相同,但仅包含数字,不包含字母和特殊字符。任何地方都没有前导或训练空格或双空格。空白条目仍然有效。

var letterDigits - 只允许字母和数字,不含特殊字符。任何地方都没有前导或训练空格或双空格。空白条目仍然有效。

https://jsfiddle.net/umdhh5fb/

var value = '2 a s 2 s 2 a';
var valueInValid = 'a a a a a 2'
var valueDigits = '12321 asda 12312 2';

var letters = /([a-zA-Z]+\s)*[a-zA-Z]+$/; // only letters with no more than 2 spaces
var digits = /[\d+\s]*[\d]+$/; // only digits with no more than 2 spaces

var lettersDigits = /[a-zA-Z\d+\s]*[a-zA-Z\d]+$/; // digits and letters allowed no special characters no more than 2 spaces

if (letters.test(value) == false) {
$("#output").text("invalid");
} else {
$("#output").text("valid");
}

if (letters.test(valueInValid) == false) {
$("#output2").text("invalid");
} else {
$("#output2").text("valid");
}


if (digits.test(valueDigits) == false) {
$("#output3").text("invalid");
} else {
$("#output3").text("valid");
}


if (lettersDigits.test(value) == false) {
$("#output4").text("invalid");
} else {
$("#output4").text("valid");
}


<div id="output"></div> /* returns valid */
<div id="output2"></div> /* returns invalid */
<div id="output3"></div> /* returns valid */
<div id="output4"></div> /* returns valid */

最佳答案

您需要将 anchor ^ 添加到正则表达式的开头,以便它匹配整个值,而不仅仅是值的末尾。

要将某些内容设置为可选,请在其后添加 ?。要在事物之间最多留出一个空格,请将以空格结尾的表达式设为可选。要允许空输入,请将 ^$ 之间的所有内容设为可选。

var value = '2 a s 2 s 2 a';
var valueInValid = 'a a a a a 2'
var valueDigits = '12321 asda 12312 2';

var letters = /^(([a-z]+\s)?[a-z]+)?$/i; // only letters with no more than 1 spaces
var digits = /^((\d+\s)?\d+)?$/; // only digits with no more than 1 spaces

var lettersDigits = /^(([a-z\d]+\s)?[a-z\d]+)?$/i; // digits and letters allowed no special characters no more than 1 spaces

if (letters.test(value) == false) {
$("#output").text("invalid");
} else {
$("#output").text("valid");
}

if (letters.test(valueInValid) == false) {
$("#output2").text("invalid");
} else {
$("#output2").text("valid");
}

if (digits.test(valueDigits) == false) {
$("#output3").text("invalid");
} else {
$("#output3").text("valid");
}

if (lettersDigits.test(value) == false) {
$("#output4").text("invalid");
} else {
$("#output4").text("valid");
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="output"></div>
<div id="output2"></div>
<div id="output3"></div>
<div id="output4"></div>

关于javascript - 只接受字母和空格、数字和空格以及不同框中带有空格的字母和数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39134710/

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