Javascript 如何在正则表达式中接受定界符(:,,,,/,?,=,+;,-,"),以匹配字符串值

Javascript 如何在正则表达式中接受定界符(:,,,,/,?,=,+;,-,"),以匹配字符串值,javascript,Javascript,我试图验证输入字符串。 我可能在“abc 123”和“abcd 123”之间有一些分隔符,即可能的情况: str = "abc-123 abcd 123"; str = "abc/123 abcd 123"; str = "abc&&123 abcd 123"; str = "abc:123 abcd 123"; str = "abc.123 abcd 123"; etc..... 基本上,我想把所有这些字符串都看作是字符串有效的字符串。 我的正则表达式: var m = va

我试图验证输入字符串。 我可能在“abc 123”和“abcd 123”之间有一些分隔符,即可能的情况:

str = "abc-123 abcd 123";
str = "abc/123 abcd 123";
str = "abc&&123 abcd 123";
str = "abc:123 abcd 123";
str = "abc.123 abcd 123";
etc.....
基本上,我想把所有这些字符串都看作是字符串

有效的字符串。 我的正则表达式:

var m = value.match(/([a-z]+\s*\d+)\s+([a-z]+\s*\d+|\d+\s*[a-z]+)/i);
if (m) {return "valid string"}
else {return "invalid string"}
目前,我的正则表达式对上面列出的场景抛出“无效字符串”,除了空格

(str=“User 123”)//返回有效字符串

我如何在正则表达式中添加一个条件来评估上述所有场景是否为真

函数测试(值){
var m=值。匹配(/([a-z]+\s*\d+)\s+([a-z]+\s*\d+\d*[a-z]+)/i);
if(m){返回“有效字符串”}
else{返回“无效字符串”}
}
控制台日志(testIt(“abc-123 abcd 123”);
控制台日志(testIt(“abc/123 abcd 123”);
日志(testIt(“abc&123 abcd 123”);
控制台日志(testIt(“abc:123 abcd 123”);

控制台日志(testIt(“abc.123 abcd 123”)将所有可能的字符放入
[a-z]+
\d+
之间的字符集中:

([a-z]+[\s\/&:.-]*\d+)\s+([a-z]+\s*\d+|\d+\s*[a-z]+)
       ^^^^^^^^^^^

或者,重复任何非数字字符,直到找到一个数字字符(如果确实允许使用任何非数字字符):

我给你做了一个
([a-z]+\D*\d+)\s+([a-z]+\s*\d+|\d+\s*[a-z]+)
       ^^^