我需要找到一个只允许字母数字的reg ex。到目前为止,我尝试的每个人都只在字符串是字母数字的情况下工作,意思是既包含字母又包含数字。我只想要一个既允许其中一种,又不要求两者兼得的。


当前回答

将这些代码输入到您的SCRATCHPAD并查看操作。

var str=String("Blah-Blah1_2,oo0.01&zz%kick").replace(/[^\w-]/ig, '');

其他回答

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 A-Z 0-9]+/g

a-z:从a到z的任意值。

A-Z:从A到Z的任意值(大写)。

0-9: 0 ~ 9之间的任意数字。

它将允许方括号内的任何字符,所以假设你想允许任何其他字符,例如“/”和“#”,正则表达式将是这样的:

/[^a-z A-Z 0-9 / #]+/g

这个网站将帮助你在编码之前测试你的正则表达式。 https://regex101.com/

您可以随意修改和添加任何您想要的内容到括号中。 的问候:)

将这些代码输入到您的SCRATCHPAD并查看操作。

var str=String("Blah-Blah1_2,oo0.01&zz%kick").replace(/[^\w-]/ig, '');
/^[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

更新(支持通用字符)

如果您需要这个regexp支持通用字符,您可以在这里找到unicode字符列表。

美国小妞example: / ^(黑a-zA-Z0-9 \ u0600——地球,随便\ u06FF u0660——\ u0669 \ u06F0——\ u06F9 _. -铝+)美元/

这将支持波斯语。

同样,如果你只是寻找字母字符,你可以使用下面的正则表达式:

/[^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并使用小抄或使用正则表达式。

编辑:字母数字->字母