簡體   English   中英

使用正則表達式對字符串進行JavaScript驗證

[英]JavaScript validation of string using regular expression

我必須驗證以A-za-z 0-9_並且可以包含0-9_字符串字段。 我必須設置限制,最小1個字符,最大10個字符。

Exp=/^([a-zA-Z]) +([0-9._]*)/;

試試這個正則表達式:

/^[a-zA-Z][0-9_]{0,9}$/

請參閱regex101.com上的演示

我必須驗證以A-za-z 0-9_並且可以包含0-9_字符串字段。

我猜A-za-z是一個錯字,您的意思是A-Za-z 這很容易,我們使用^表示字符串開頭,使用[A-Za-z]字符類表示字母。

我必須設置限制,最小1個字符,最大10個字符。

這意味着,我們已經在步驟1中滿足了“最少1個字符”的要求(開頭為一個字母)。 現在,我們可能會有字母,數字或下划線,出現0到9次-也就是說,我們需要使用{0,9}限制量詞-直到字符串的末尾(即$ )。 JS正則表達式中用於字母,數字和下划線的簡寫模式是\\w

采用

/^[a-zA-Z]\w{0,9}$/

 var re = /^[a-zA-Z]\\w{0,9}$/; var str = 'a123456789'; if (re.test(str)) { console.log("VALID!") } else { console.log("INVALID!") } 

function isValid(string){
    if (string.length < 1 || string.length > 10)
        return false;
    return /^[a-zA-Z][0-9_]*$/.test(string);
}

console.assert(isValid("A"));
console.assert(isValid("a12345"));
console.assert(!isValid(""));
console.assert(!isValid("x123456787212134567"));
console.assert(!isValid("abcdef"));
console.assert(!isValid("012345"));

不要嘗試使用正則表達式檢查字符串的長度,在大多數情況下,它很慢且很麻煩。

暫無
暫無

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

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