我需要找到一个只允许字母数字的reg ex。到目前为止,我尝试的每个人都只在字符串是字母数字的情况下工作,意思是既包含字母又包含数字。我只想要一个既允许其中一种,又不要求两者兼得的。
当前回答
Jquery to accept only NUMBERS, ALPHABETS and 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>
其他回答
与检查有效的字母数字字符串不同,可以通过检查字符串中的任何无效字符来间接实现这一点。通过检查与有效字母数字字符串的补码匹配的任何内容来执行此操作。
/[^a-z\d]/i
这里有一个例子:
var alphanumeric = "someStringHere";
var myRegEx = /[^a-z\d]/i;
var isValid = !(myRegEx.test(alphanumeric));
注意isValid处的逻辑not运算符,因为我测试的是字符串是否为假,而不是它是否有效。
将这些代码输入到您的SCRATCHPAD并查看操作。
var str=String("Blah-Blah1_2,oo0.01&zz%kick").replace(/[^\w-]/ig, '');
似乎许多用户已经注意到,除非我们严格使用英语,否则这些正则表达式几乎肯定会失败。但我认为有一种不受限制的简单方法。
复制你的字符串在所有大写 用小写字母复制一份
在这些字符串中匹配的任何字符本质上肯定不是字母。
let copy1 = originalString.toUpperCase();
let copy2 = originalString.toLowerCase();
for(let i=0; i<originalString.length; i++) {
let bIsAlphabetic = (copy1[i] != copy2[i]);
}
此外,您还可以通过查找数字0到9来检测数字。
同样,如果你只是寻找字母字符,你可以使用下面的正则表达式:
/[^a-zA-Z]/gi
typescript中的示例代码:
let samplestring = "!#!&34!# Alphabet !!535!!! is safe"
let regex = new RegExp(/[^a-zA-Z]/gi);
let res = samplestring.replace(regex,'');
console.log(res);
注意:如果您对RegEx语法感到好奇,请访问regexr并使用小抄或使用正则表达式。
编辑:字母数字->字母
只接受数字和字母(无空格)
函数onlyAlphanumeric (str) { str.value = str.value。replace(/\s/g, "") str.value = str.value。replace(/[^a-zA-Z0-9]/g, ""); } <div>只接受数字和字母</div> <input type="text" onKeyUp=" onlyalphannumeric (this);">