簡體   English   中英

正則表達式確保字符串以數字開頭和結尾

[英]regex ensure string starts and ends with digits

如何編寫在 JavaScript 中使用的正則表達式,以確保字符串的第一個和最后一個字符始終是數字?

r = /\D+/g;
var s = "l10ddd31ddd5705ddd";
var o = r.test(s);
console.log(o);

因此, 1KJ25LP3665將返回 true,而K12M25XC5750將返回 false。

你可以有一個像下面這樣的正則表達式:

 /^\d(.*\d)?$/
  • ^從字符串的開頭開始匹配, $繼續匹配直到字符串的結尾。
  • \\d匹配開頭和結尾的數字。
  • .*匹配中間的零個或多個字符。
  • 我們使用 ? 使組1 => (.*\\d)可選? 元字符,可選擇匹配零個或多個以數字結尾的字符,直到字符串的結尾。 如果字符串只有一個數字,這將有所幫助。
if(s.matches("\\d.*\\d"))
{
// Do what you want once both start and ending characters are digits 
}

此解決方案無需正則表達式即可獲得相同的結果。 它還處理空字符串或只有一個字符的字符串。

function startsAndEndsWithDigits(string) 
{
    if(string.length>0)//if string is not empty
    {
        var firstChar = string.split('')[0];//get the first charcter of the string
        var lastChar  = string.split('')[string.length -1];//get the last charcter of the string
        if(firstChar.length>0 && lastChar.length>0)
        {   //if first and last charcters are numbers, return true. Otherwise return false.
            return !isNaN(firstChar) && !isNaN(lastChar);
        } 
    } 
    return false; 
}

用法示例:

startsAndEndsWithDigits('1KJ25LP3665'); //returns true 
startsAndEndsWithDigits('K12M25XC5750');//returns false
startsAndEndsWithDigits('');            //returns false
startsAndEndsWithDigits('a');           //returns false 
startsAndEndsWithDigits('7');           //returns true 

暫無
暫無

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

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