正则表达式确保字符串以数字开头和结尾

时间:2020-01-26 03:48:09

标签: javascript regex

如何编写用于JavaScript的正则表达式,以确保字符串的第一个和最后一个字符始终是数字?

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

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

3 个答案:

答案 0 :(得分:5)

您可以使用如下所示的正则表达式:

 /^\d(.*\d)?$/
  • ^从字符串的开头开始匹配,$从字符串的开头继续匹配。
  • \d以匹配开头和结尾的数字。
  • .*,以匹配零个或多个字符。
  • 我们通过1元字符使(.*\d) => ?组为可选,以可选地匹配零个或多个以数字结尾的字符,直到字符串的末尾。如果字符串只有一个数字,这将有所帮助。

答案 1 :(得分:1)

if(s.matches("\\d.*\\d"))
{
// Do what you want once both start and ending characters are digits 
}

答案 2 :(得分:1)

此解决方案在没有正则表达式的情况下也能达到相同的结果。它还可以处理空字符串或仅包含一个字符的字符串。

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