簡體   English   中英

驗證正則表達式中的字符串

[英]Validate string in regular expression

我想在 JavaScript 中有一個正則表達式,它可以幫助我驗證一個只包含小寫字符和這個字符的字符串-

我使用這個表達式:

var regex = /^[a-z][-\s\.]$/

它不起作用。 任何想法?

簡單,只需使用: /^[az-]+$/

解釋:

  • ^ : 從字符串開始匹配
  • [az-] : 匹配 az 和 - 之間的所有字符
    • [] :只允許括號內的字符
    • az :匹配 az 之間的所有字符。 例如:p,s,t
    • - :僅匹配帶 ( - ) 字符
  • + : {1,}的簡寫。 手段是匹配1個或更多
  • $ : 匹配直到字符串結束

例子:

 const regex= /^[az-]+$/ console.log(regex.test("abc")) // true console.log(regex.test("aBcD")) // false console.log(regex.test("ac")) // true

嘗試這個:

var regex = /^[-a-z]+$/;

 var regex = /^[-az]+$/; var strs = [ "a", "aB", "abcd", "abcde-", "-", "-----", "abc", "aDc", " " ]; strs.forEach(str=>console.log(str, regex.test(str)));

嘗試這個

/^[a-z-]*$/

它應該盡可能多地匹配字母 az 或 -。

您正則表達式所做的是嘗試一次匹配 az,然后一次匹配 -、空格或點中的任何一個。 然后期望字符串結束。

使用這個正則表達式:

let regex = /^[a-z\-]+$/;

然后:

regex.test("abcd") // true
regex.test("ab-d") // true
regex.test("ab3d") // false
regex.test("") // false

PS:如果要允許空字符串""通過,請使用/^[az\-]*$/ 最后有一個*而不是+ 請參閱正則表達式備忘單: https://www.rexegg.com/regex-quickstart.html

這將起作用:

 var regex = /^[az|\-|\s]+$/ //For this regex make use of the 'or' | operator str = 'test- '; str.match(regex); //["test- ", index: 0, input: "test- ", groups: undefined] str = 'testT- ' // string now contains an Uppercase Letter so it shouldn't match anymore str.match(regex) //null

我希望這有幫助

 var str = 'asdadWW--asd'; console.log(str.match(/[az]|\-/g));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM