Проверьте, соответствует ли вход формату STEAM ID - PullRequest
1 голос
/ 17 июля 2011

Я понимаю, как сопоставить его, но я не знаю, например, критерий, который использует Email matcher: /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/, но мне нужно знать, какой идентификатор Steam будет использовать.

Демо Steam ID:STEAM_0: 1: 20206720

Может кто-нибудь дать мне критерии для идентификаторов STEAM?

РЕДАКТИРОВАТЬ: я использую выражение регулярного выражения, предоставленное pimvdb, но он все еще отвечает, что идентификатор пара (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()" />

Ответы [ 2 ]

4 голосов
/ 17 июля 2011

Согласно http://developer.valvesoftware.com/wiki/SteamID#Format это может быть что-то вроде:

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

^...$ просто так, что точная строка должна совпадать.

STEAM_ - префикс.

После префикса должно быть одно число в диапазоне от 0 до 5.

Затем :, за которым следуют 0 или 1.

Затем еще один :, за которым следует номер счета.

2 голосов
/ 17 июля 2011

Попробуйте это:

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