Regex用于验证与-连接的字符和数字



我正在尝试匹配字符和数字不能连接的字符串,如果你想使用连字符连接。

例如,这些都应该匹配:

  • abc - 123 - 123 - * * *
  • 123 -美国广播公司abc - * * *
  • 123 - abc - 123 * * *
  • 校正- 123 - * * *
  • abc-efg - * * *

不匹配:

  • abc123
  • 123年美国广播公司(abc)
  • 他们
  • a1b2请帮我找一个javascript正则表达式

请帮我找一个javascript正则表达式。

我的正则表达式很复杂:

^([^d-]+|d+)(-([^d-]+|d+))*$

javascript中测试字符串是否匹配:

/^([^d-]+|d+)(-([^d-]+|d+))*$/gi.test('abc-123-123-***')

简单地测试从alpha到数字的转换,或者从数字到alpha的转换,并取其逻辑相反:

[
'abc-123-123-***',
'123-abc-abc-***',
'123-abc-123-***',
'abc-123-abc-***',
'abc-efg-***',
'abc123',
'123abc',
'abc1',
'a1b2',
].forEach(str => {
var ok = !/d[a-z]|[a-z]d/.test(str);
console.log(str, ' ==> ', ok);
});

最新更新