gpt4 book ai didi

javascript - 字母文本的正则表达式有一些异常(exception)

转载 作者:行者123 更新时间:2023-11-30 13:04:07 24 4
gpt4 key购买 nike

我正在寻找接受字母、点 (.)、方括号、- 等的文本字段的正则表达式

A.B.C
ABC (new),
A & A co.
A-abc.

我有我的正则表达式:

/^[A-z.&() ]+$/

代码:

var regex = /^[a-z][a-z.()&-]+$/;
var sel = document.getElementById("TextBoxID").value;
if (sel != "-- Select --") {
if (!regex.test(sel.toString())) {
alert("Please use a proper name.");
}
} return false;

我希望字符串必须以字母开头。但是当我添加 - 时似乎这不起作用,可能是语法错误。

最佳答案

首先,请注意 [A-z][A-Za-z] 相同,这可能就是您的意思.如果你看an ASCII table ,您可以看到从 Az 的范围包含几个您可能不打算包含的特殊字符。

其次,由于破折号 - 表示字符类中的一个范围(如上所述),它必须包含在最后(或第一个, 但更常见的是最后一个)以便被解释为文字破折号。

所以,你真正想要的是:

/^[A-Za-z.()&-]+$/

并断言它以字母开头:

/^[A-Za-z][A-Za-z.()&-]*$/
^^^^^^^^ ^

(请注意,我已将 + 量词更改为 * 量词。)

最后,正如@ExplosionPills 所做的那样,您可以通过不区分大小写来简化表达式:

/^[a-z][a-z.()&-]*$/i

关于javascript - 字母文本的正则表达式有一些异常(exception),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16336999/

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