gpt4 book ai didi

javascript - 正则表达式模式匹配问题

转载 作者:行者123 更新时间:2023-12-01 01:34:17 25 4
gpt4 key购买 nike

在正则表达式方面没有太多经验。

我有以下 java 脚本,它工作得很好。

使用以下模式仅允许字母数字

var valid = /^[A-Za-z0-9]+$/.test("a"); // returns true
var valid = /^[A-Za-z0-9]+$/.test("@"); // returns false

我在代码的其他一些地方使用模式部分“^[A-Za-z0-9]”,并被要求在变量中使用部分“^[A-Za-z0-9]”并使用它,使其不重复。以下是对上面的修改:

var regExPart= "^[A-Za-z0-9]";
var regExString = ("/" + regExPart+ "+$/".replace(/\"/g, "")); // replacing the quotes
var regExp = new RegExp(regExString); // results in /^[A-Za-z0-9]+$/
var valid = regExp.test(charValue); // charValue could be any keyvalue "a" or "@"

//the above returns false for "a"
//the above returns false for "@"

我在按键事件中编写此内容以仅允许字母数字

keypressValidation: function (e) {
var charCode = (e.which) ? e.which: event.keyCode;
var charValue = String.fromCharCode(charCode);
var valid = return /^[A-Za-z0-9]+$/.test(charValue);
if (!valid)
{
//prevent default (don't allow/ enter the value)
}

不知道为什么。我在这方面缺少什么。对于这两种方法,都需要为“a”返回 true,为“@”返回 false。任何帮助/建议都会有很大帮助。提前致谢。

最佳答案

对于 RegExp 类构造函数,不需要指定正斜杠 /

var regExPart= "^[A-Za-z0-9]";
var regExp = new RegExp(regExPart + "+$"); // results in /^[A-Za-z0-9]+$/

console.log('a', regExp.test('a'))
console.log('@', regExp.test('@'))

关于javascript - 正则表达式模式匹配问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52980543/

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