Answers:
/^[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是必需的,因为它表示全局(不仅在第一个匹配项上),并且不区分大小写,这就是为什么我使用az而不是a-zA-Z的原因。括号中的^表示“括号中没有的任何内容”。
警告:如果这正是您想要的,字母数字就很棒。但是,如果您要在某个人的名字或地理区域等国际市场上使用此代码,则需要考虑unicode字符,而这样做是不会做的。例如,如果您有一个名称“lvarö”,则将其命名为“ lvar”。
这会起作用
^(?=.*[a-zA-Z])(?=.*[0-9])[a-zA-Z0-9]+$
它仅接受字母数字字符:
pased测试用例:
dGgs1s23 - valid
12fUgdf - valid,
121232 - invalid,
abchfe - invalid,
abd()* - invalid,
42232^5$ - invalid
要么
您也可以尝试这个。该表达式至少满足一个数字和一个字符,没有其他特殊字符
^(?=.*[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);
引用:Angular.js 中字母数字的正则表达式
扩展字符串原型以在整个项目中使用
String.prototype.alphaNumeric = function() {
return this.replace(/[^a-z0-9]/gi,'');
}
用法:
"I don't know what to say?".alphaNumeric();
//Idontknowwhattosay
似乎很多用户已经注意到,除非我们严格使用英语,否则这些正则表达式几乎肯定会失败。但是我认为有一个简单的前进方向,不会受到如此局限。
在这些字符串中匹配的任何字符在本质上绝对不是字母。
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至z),AZ(A至Z),0-9(0至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英寸(2GB,32GB ROM)Android 9.0,(13MP + 2MP)+ 8MP Dual SIM 4000mAh 4G LTE智能手机-黑色(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只接受数字,字母和特殊字符
<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>