回答:
/^[a-z0-9]+$/i
^ Start of string
[a-z0-9] a or b or c or ... z or 0 or 1 or ... 9
+ one or more times (change to * to allow empty string)
$ end of string
/i case-insensitive
更新(ユニバーサルキャラクターのサポート)
この正規表現がユニバーサル文字をサポートする必要がある場合は、Unicode文字のリストをここで見つけることができます。
例えば: /^([a-zA-Z0-9\u0600-\u06FF\u0660-\u0669\u06F0-\u06F9 _.-]+)$/
これはペルシャ語をサポートします。
[^\W_]
が、[a-z0-9]
/ iは明白な方法です。
置き換えられた結果を返したい場合、これはうまくいきます:
var a = 'Test123*** TEST';
var b = a.replace(/[^a-z0-9]/gi,'');
console.log(b);
これは戻ります:
Test123TEST
最初の一致だけではなく、グローバルで大文字と小文字を区別しないため、giが必要であることに注意してください。かっこ内の^は、「これらのかっこ内にないもの」を意味します。
警告:英数字は、それがまさにあなたが望むものである場合に最適です。しかし、これを人の名前や地理的な地域などの国際市場で使用している場合は、Unicode文字を考慮する必要がありますが、これは機能しません。たとえば、「Âlvarö」のような名前がある場合、「lvar」になります。
単語文字クラスを使用します。以下はaと同等^[a-zA-Z0-9_]+$
です。
^\w+$
説明:
/[^\w]|_/g
アンダースコアを一致させたくない場合に使用します。
/^([a-zA-Z0-9 _-]+)$/
上記の正規表現では、文字列内にスペースを含めることができ、特殊文字を制限します。az、AZ、0-9、スペース、アンダースコア、ダッシュのみを許可します。
これは動作します
^(?=.*[a-zA-Z])(?=.*[0-9])[a-zA-Z0-9]+$
英数字のみを受け入れます:
テストケースをパスしました:
dGgs1s23 - valid
12fUgdf - valid,
121232 - invalid,
abchfe - invalid,
abd()* - invalid,
42232^5$ - invalid
または
こちらもお試しいただけます。この表現は、少なくとも1つの数字と1つの文字を満たし、他の特殊文字は満たしていません
^(?=.*[0-9])(?=.*[a-zA-Z])([a-zA-Z0-9]+)$
角度で次のようにテストできます:
$scope.str = '12fUgdf';
var pattern = new RegExp('^(?=.*[0-9])(?=.*[a-zA-Z])([a-zA-Z0-9]+)$');
$scope.testResult = pattern.test($scope.str);
参照:Angularjs での英数字の正規表現
多くのユーザーがこれに気づいたようですが、厳密に英語で作業していなければ、これらの正規表現はほぼ間違いなく失敗します。しかし、それほど制限されない簡単な方法があると思います。
これらの文字列で一致する文字は、実際にはアルファベットではありません。
let copy1 = originalString.toUpperCase();
let copy2 = originalString.toLowerCase();
for(let i=0; i<originalString.length; i++) {
let bIsAlphabetic = (copy1[i] != copy2[i]);
}
オプションで、0〜9の数字を検索するだけで数値を検出することもできます。
これを試してください...フィールドIDを#name ... az(a to z)、AZ(A to Z)、0-9(0 to 9)に置き換えます。
jQuery(document).ready(function($){
$('#name').keypress(function (e) {
var regex = new RegExp("^[a-zA-Z0-9\s]+$");
var str = String.fromCharCode(!e.charCode ? e.which : e.charCode);
if (regex.test(str)) {
return true;
}
e.preventDefault();
return false;
});
});
JAVASCRIPTは、数字、アルファベット、特殊文字のみを受け入れます
document.getElementById("onlynumbers").onkeypress = function (e) {
onlyNumbers(e.key, e)
};
document.getElementById("onlyalpha").onkeypress = function (e) {
onlyAlpha(e.key, e)
};
document.getElementById("speclchar").onkeypress = function (e) {
speclChar(e.key, e)
};
function onlyNumbers(key, e) {
var letters = /^[0-9]/g; //g means global
if (!(key).match(letters)) e.preventDefault();
}
function onlyAlpha(key, e) {
var letters = /^[a-z]/gi; //i means ignorecase
if (!(key).match(letters)) e.preventDefault();
}
function speclChar(key, e) {
var letters = /^[0-9a-z]/gi;
if ((key).match(letters)) e.preventDefault();
}
<html>
<head></head>
<body>
Enter Only Numbers:
<input id="onlynumbers" type="text">
<br><br>
Enter Only Alphabets:
<input id="onlyalpha" type="text" >
<br><br>
Enter other than Alphabets and numbers like special characters:
<input id="speclchar" type="text" >
</body>
</html>
Samsung Galaxy A10s 6.2-Inch(2GB、32GB ROM)Android 9.0、(13MP + 2MP)+ 8MP Dual SIM 4000mAh 4G LTE Smartphone-Black(BF19)に似た文字列があります
以下は私がやったことです:
string.replace(/[^a-zA-Z0-9 ,._-]/g, '').split(',').join('-').split(' ').join('-').toLowerCase()
私が許可してから、それぞれを,._-
使用split()
しjoin()
て置換,
し-
、スペースを置換することに注意してください-
。
私はこのようなものを手に入れました:
samsung-galaxy-a10s-6.2-inch-2gb-32gb-rom-android-9.0-13mp-2mp-8mp-dual-sim-4000mah-4g-lte-smartphone-black-bf19-20
これは私が欲しかったものです。
より良い解決策があるかもしれませんが、これは私にとってうまく機能しているものです。
この定数を保存
const letters = /^[a-zA-Z0-9]+$/
今、部品をチェックするために.match()を使用します
const string = 'Hey there...' // get string from a keyup listner
let id = ''
// iterate through each letters
for (var i = 0; i < string.length; i++) {
if (string[i].match(letters) ) {
id += string[i]
} else {
// In case you want to replace with something else
id += '-'
}
}
return id
jqueryは、NUMBERS、ALPHABETS、SPECIAL CHARECTERSのみを受け入れます
<html>
<head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
</head>
<body>
Enter Only Numbers:
<input type="text" id="onlynumbers">
<br><br>
Enter Only Alphabets:
<input type="text" id="onlyalpha">
<br><br>
Enter other than Alphabets and numbers like special characters:
<input type="text" id="speclchar">
<script>
$('#onlynumbers').keypress(function(e) {
var letters=/^[0-9]/g; //g means global
if(!(e.key).match(letters)) e.preventDefault();
});
$('#onlyalpha').keypress(function(e) {
var letters=/^[a-z]/gi; //i means ignorecase
if(!(e.key).match(letters)) e.preventDefault();
});
$('#speclchar').keypress(function(e) {
var letters=/^[0-9a-z]/gi;
if((e.key).match(letters)) e.preventDefault();
});
</script>
</body>
</html>
**JQUERY to accept only NUMBERS , ALPHABETS and SPECIAL CHARACTERS **
<!DOCTYPE html>
$('#onlynumbers').keypress(function(e) {
var letters=/^[0-9]/g; //g means global
if(!(e.key).match(letters)) e.preventDefault();
});
$('#onlyalpha').keypress(function(e) {
var letters=/^[a-z]/gi; //i means ignorecase
if(!(e.key).match(letters)) e.preventDefault();
});
$('#speclchar').keypress(function(e) {
var letters=/^[0-9a-z]/gi;
if((e.key).match(letters)) e.preventDefault();
});
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js">
数字のみを入力:
アルファベットのみを入力:
アルファベット
以外の文字と特殊文字のような数字を入力してください:
</body>
</html>