我需要编写一个正则表达式来检查字符串是否符合格式' ACT'然后是6位数,例如。 ' ACT123456'
虽然看起来很简单,但我的选择都不起作用;函数总是返回false。
我尝试了以下组合: 纯粹的regexpression文字
var format = /^ACT\d{6}$/;
var format = /^ACT[0-9]{6}$/;
或者使用带双重转义的RegExp对象(例如。\\ d)和单次转义(\ d)
var format = new RegExp("^ACT\\d{6}$");
var format = new RegExp("^ACT[0-9]{6}$");
我的测试功能是:
function testPattern(field, pattern) {
if (!pattern.test(field)) {
return false;}
else {
return true;
}}
答案 0 :(得分:0)
var format = /^ACT\d{6}$/;
工作正常,但字符串必须是ACT123456
完全没有任何前置或跟随它
例如'ACT123456 '
失败
使用
/ACT\d{6}/
允许更多容差或首先从字符串中删除空格
答案 1 :(得分:0)
var testString = "ACT123456"; // string to test
// pattern as a regex literal
var pattern = /^ACT[0-9]{6}$/g;
console.log(testString.match(pattern)); // output: ["ACT123456"]
答案 2 :(得分:0)
感谢所有人的回答和反馈!
在坚持使用正则表达式之后,我意识到我的问题是我在我的函数中没有使用field.value。
所以,问题在于必须具有以下功能:
function testPattern(field, pattern) {
if (!pattern.test(field.value)) {
return false;}
else {
return true;
}}