检查输入是否与STEAM ID格式匹配

时间:2011-07-17 13:50:09

标签: javascript pattern-matching

我理解如何匹配但我不知道标准,例如,电子邮件匹配器会使用:/^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/但我需要知道蒸汽ID将使用什么。

演示Steam ID:STEAM_0:1:20206720

有人可以给我一个STEAM ID标准吗?

编辑: 我正在使用pimvdb提供的正则表达式,但它仍然回复说蒸汽ID(STEAM_0:1:20206720)不正确。

我的代码如下:

function verifySteamID(){
    var elem = document.getElementById('item_name');
    var emailExp = /^STEAM_[0-5]:[01]:\d+$/;
    if(elem.value.match(emailExp)){
        document.getElementById("error").setAttribute("class", "hidden");
        return true;
    }else{
        document.getElementById("error").setAttribute("class", "unhidden");
        elem.focus();
        return false;
    }
    }

由以下人员召集:

<input type="submit" value="Donate" id="donatebtn" onclick="return verifySteamID()" />

3 个答案:

答案 0 :(得分:4)

根据http://developer.valvesoftware.com/wiki/SteamID#Format,它可能类似于:

/^STEAM_[0-5]:[01]:\d+$/

^...$只是为了确保字符串必须匹配。

STEAM_是前缀。

在前缀后面应该有一个从0到5的数字。

然后是:,后跟0或1。

然后是另一个:,后跟帐号。

答案 1 :(得分:2)

试试这个:

var input = "STEAM_0:1:20206720"; 
var isValid = /^STEAM_\d:\d:\d+$/.test(input); //true

答案 2 :(得分:0)

我知道这很旧,但是以下RegEx表达式对我有用: ^STEAM_[0-5]:[0-1]:[0-9]*$

工作方式:

  • ^STEAM_在SteamID的开头检查“ STEAM_”字符串。
  • [0-5]:查找包含0到5之间的整数,后跟“:”。
  • [0-1]:相同。
  • [0-9]*$检查以下所有字符是否为0到9之间的整数。