验证字符串格式

时间:2017-09-02 08:34:25

标签: javascript string validation

我有一个字符串的不同格式列表。当字符串产生某个字符串时,用户必须键入该特定字符串的格式。

如果给定的字符串是

  

A-01-13A

     

(一个字母表,后跟短划线,两个数字,后跟破折号,两个数字和一个字母表)

  

A-01-13

     

(一个字母表,后跟短划线,两个数字,后跟短划线,两个数字)

用户的键入字符串在已验证下方:

  

B-13-99

     

B-14-11A

用户的键入字符串未经过验证

  

B-13-100

使用Regex或Javascript中的其他方法验证给定字符串的最佳方法是什么?

3 个答案:

答案 0 :(得分:2)

只需使用简单的正则表达式:

const userKeyRegExp = /^[A-Z]\-[0-9]{2}\-[0-9]{2}[A-Z]?$/;

const valid = userKeyRegExp.test('A-01-13A');

console.log(valid);

答案 1 :(得分:1)

您正在寻找的RegExp表达式是:

^([a-zA-Z]{1}-[0-9]{2}-[0-9]{2}[a-zA-Z]{0,1})$

这意味着: 以一个字符开头,后跟一个短划线,后跟两个数字,后跟一个破折号,后跟两个数字,两个数字结束,一个或没有字符。

您可以在Regex101中使用它,或者您可以使用Javascript,如下所示:

/** @const {!RegExp} Code pattern to validate. */
const CODE_PATTERN = /^([a-zA-Z]{1}-[0-9]{2}-[0-9]{2}[a-zA-Z]{0,1})$/;


/**
 * Validate that a certain code matches expected RegExp.
 * Uses CODE_PATTERN to validate.
 * @param {string} code - Code to be validated.
 * @return {bool} Whether provided code matches pattern.
 */
const validateCode = function(code) {
  return CODE_PATTERN.test(code);
};



// Test sample of codes.
const testCodes = [
  'A-01-13A',
  'A-01-13',
  'B-13-99',
  'B-14-11A',
  'B-13-100'
];
for (code of testCodes) {
  const isValidCode = validateCode(code);
  console.log(isValidCode);
}

答案 2 :(得分:0)

你可以通过以下方式完成

function validate(str){
    return str.match(/^[A-Z]-\d{2}-\d{2}[A-Z]?$/) !== null;
}


console.log(validate('A-01-13A'));
console.log(validate('A-01-13'));
console.log(validate('B-13-99'));
console.log(validate('B-14-11A'));
console.log(validate('B-13-100'));