2017-10-11 44 views
1

以下規則適用於字符串,我需要測試結束:正則表達式來開始和不同的條件

  • 必須開始只有字母(1個或多個)
  • 可以包含字母,數字和/或下劃線(_)(0或更多)
  • 必須以字母或數字(1或更多)結束

^[a-z]+[\w]*[a-z0-9]$/gi是我得到的最接近,但它不匹配包含單個字母的字符串。

應該匹配

實例:

  • test_regex_9
  • Ë
  • test9

實例,不應該相匹配:

  • TEST_
  • _test
  • 9test

^[a-z]+[\w]*[a-z0-9]*$/gi還允許字符串結束與_

回答

2

您可以使用可選的組:

/^[a-z]+(?:\w*[a-z0-9])?$/i 

詳細

  • ^ - 串
  • 開始
  • [a-z]+ - 一個或多個字母
  • (?:\w*[a-z0-9])? - 一個或零個發生
    • \w* - 0或多個單詞字符
    • [a-z0-9] - 一個字母數字字符
  • $ - 字符串的結尾。