gpt4 book ai didi

javascript - 字母数字和 - ' 的正则表达式

转载 作者:行者123 更新时间:2023-11-29 21:00:22 26 4
gpt4 key购买 nike

我一直在尝试不同的正则表达式,但似乎找不到正确的。

我需要一个正则表达式,允许用户在文本中键入字母、数字、空格和 '。

所以字符串像:"'s Ochtends vroeg"“明天晚上”"ISBN1234ABC"

应该是真的。

我已经使用以下代码尝试了以下正则表达式:

/([A-Za-z0-9'-\s])/g
[^#$@_&!*()]
and more of these variations

var regex = new RegExp("([a-zA-Z0-9\s'-])+");
console.log(regex.test(word));

当我输入“ABN##@@123-TEST”这个词时,现在全部返回真。它应该是错误的,因为字符 ##@@ 在里面。

感谢您的帮助。

最佳答案

new RegExp("([a-zA-Z0-9\s'-])+") regex 找到部分匹配,即它在较大的字符串中找到字母、数字、'- 的条纹,并在找到后返回匹配项。 注意 它找不到空格,因为字符串文字中的\s 被解析为字母s,而不是\s 空白模式。

所以,你需要做两件事:

  • 添加 anchor ,^ 在开头,$ 在模式的结尾,以确保整个字符串匹配
  • 使用正则表达式符号 /regex/,确保 \s 被解析为空白模式。

请注意,您不需要将整个模式包装在捕获组中,您始终可以访问整个正则表达式匹配值(即使在替换时,使用 $& 反向引用)。因此,您可以删除模式周围的 ()

因此,你的解决方案是

var regex = /^[a-zA-Z0-9\s'-]+$/;

JS 演示:

function test() {
var str = document.getElementById("text").value;
var regex = /^[a-zA-Z0-9\s'-]+$/;
if (regex.test(str)) {
console.log("Valid");
}
else {
console.log("Not Valid");
}
}
<input id="text" type="text" />
<button id="btn" onclick="test()">Test</button>

关于javascript - 字母数字和 - ' 的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46785955/

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