0

我需要测试一个可能包含数字、字母、破折号、正斜杠和其他字形的字符串。只允许使用数字、破折号和正斜杠。尝试了几次,但我一直弄错正则表达式语法。

基本上:

var str = '03/02/2013'; //03-02-2013 is also acceptable 

if(str has letters in it){
  console.log('incorrect formatting');
}else{
  //string is made up of only numbers, dashes or forward slashes
  console.log('okay');
}
4

3 回答 3

2

如果您想检查您的字符串“仅由数字、破折号或正斜杠组成”,那么您可以使用这个:

var isOK = /^[\d\-\/]*$/.test(str)
于 2013-09-12T19:31:44.157 回答
1

是日期格式吗?你可以试试

var str="10/12/2012"; 
var n=/^[0-9]{2}[\/-][0-9]{2}[\/-][0-9]{4}$/.test(str);
于 2013-09-12T19:36:37.687 回答
1

如果你想测试字符串是否只包含数字、破折号和正斜杠,这应该可以解决问题:

var EXP = /^[\d-\/]+$/;

这将匹配任意长度的字符串和任意数量的任何允许字符。如果您明确希望确保字符串符合日期格式,其中既有破折号,也有正斜杠:

var EXP = /^\d{1,2}[\/-]\d{1,2}[\/-]\d{1,4}$/;

这将匹配一种日期格式,该格式允许一个或两个数字表示日和月,而允许 2-4 位表示年,用破折号或正斜杠分隔。

于 2013-09-12T19:44:38.973 回答