动态模式Javascript
我收到一个远程服务的请求,该服务为我提供了如下模式的字段:动态模式Javascript,javascript,Javascript,我收到一个远程服务的请求,该服务为我提供了如下模式的字段: [a-zA-Zа-яА-ЯёЁ'+-]{1,100} [0-9a-zA-Zа-яА-ЯёЁ'+-]{2,10} 方括号中包含允许的符号。 在花括号中包含最小和最大符号 所以我有字段和它们的模式 如何通过传入模式验证输入的数据?将字符串发送到RegExp构造函数并使用test 例如: string = "[a-zA-Zа-яА-ЯёЁ'+-]{1,100}" pattern = new RegExp(string) alert(pat
[a-zA-Zа-яА-ЯёЁ'+-]{1,100}
[0-9a-zA-Zа-яА-ЯёЁ'+-]{2,10}
方括号中包含允许的符号。
在花括号中包含最小和最大符号
所以我有字段和它们的模式
如何通过传入模式验证输入的数据?将字符串发送到
RegExp
构造函数并使用test
例如:
string = "[a-zA-Zа-яА-ЯёЁ'+-]{1,100}"
pattern = new RegExp(string)
alert(pattern.test("This works, привет, 123"));
alert(pattern.test("$☛☛"));
根据您的情况,您可能需要在模式中添加“^”和“$”。您应该使用JavaScript正则表达式来解决这个问题 你可以这样做
"some test".match(/[a-zA-Zа-яА-ЯёЁ'+-]{1,100}/)
返回[“some”]
或
它返回true一个简单的示例:
var s = "hello123";
var r1 = "[a-zA-Zа-яА-ЯёЁ'+-]{1,100}"; // the pattern you were given
var reg1 = RegExp("^" + r1 + "$"); // the pattern enclosed in `^` `$`
var r2 = "[0-9a-zA-Zа-яА-ЯёЁ'+-]{2,10}";
var reg2 = RegExp("^" + r2 + "$");
alert(reg1.test(s)); // false
alert(reg2.test(s)); // true
正则表达式具有您提到的模式,但包含在^
和$
之间,表示“整个表达式”。第一个表达式失败,因为s
中有一个不允许的数字。第二个表达式传递-它只有数字和字母,总共2到10个字符。您可以使用javascript的.match()
函数传递其中的模式。由于模式本身是正则表达式格式,因此可以直接在match()中使用它。例如:-str.match(/^[A-Z#@,]+$/)
var s = "hello123";
var r1 = "[a-zA-Zа-яА-ЯёЁ'+-]{1,100}"; // the pattern you were given
var reg1 = RegExp("^" + r1 + "$"); // the pattern enclosed in `^` `$`
var r2 = "[0-9a-zA-Zа-яА-ЯёЁ'+-]{2,10}";
var reg2 = RegExp("^" + r2 + "$");
alert(reg1.test(s)); // false
alert(reg2.test(s)); // true