私は学校プロジェクトの一環としてデータベースバックアップ機能を作成しています。Regex検証ルール
データベースのバックアップ名に有効な文字しか含めることができないように正規表現ルールを作成する必要があります。
「法的」とは、記号やスペースを含まない文字列を意味します。アルファベットと数字の文字のみ。
有効な文字列の例は、'31Jan2012'
または'63927jkdfjsdbjk623'
または'hello123backup'
です。ここで
は、私のJSコードは、これまでのところです:
// Check if the input box contains the charactes a-z, A-Z ,or 0-9 with a regular expression.
function checkIfContainsNumbersOrCharacters(elem, errorMessage){
var regexRule = new RegExp("^[\w]+$");
if(regexRule.test($(elem).val())){
return true;
}else{
alert(errorMessage);
return false;
}
}
//call the function
checkIfContainsNumbersOrCharacters("#backup-name", "Input can only contain the characters a-z or 0-9.");
けれども、しかし、グーグルの迅速なビットの後、私は、次の正規表現のルールを書いて、そこからthisツールを発見する前に私は本当に正規表現を使ったことがありません。ストリングの^ =開始
^[\w]+$
[/ W] = AZ/AZ/0-9
'+' =文字列の後の文字。 ??
私の機能を実行する場合、どのような文字列I入力がfalse :(を返すように見えるが間違って私のコードであるか、私が正しく正規表現のルールを使用していない
JSコンソールで '/^[\ w] + $ /。test(" ads123 ")'を試してみました。 – fresskoma
'新しいRegexp(" [regexp-goes-here] "、" [修飾子] ")'および '/ [regexp-goes-here]/[修飾子]は同等です。前者の場合は引用符を使用し、後者の場合は引用符を使用しないでください。 – Halcyon
'+'の説明がもう少し正しいとすれば、「前のトークン(つまり '\ w')が1回以上一致する」となります。しかし、コードは、私が見ることができるから、動作するはずです。 – JimmiTh