我知道我可以通过应用这样W的正则表达式来验证字符串(0-9 AZ az和下划线):
function isValid(str) { return /^\w+$/.test(str); }
Run Code Online (Sandbox Code Playgroud)
但是如何检查字符串是否仅包含ASCII字符?(我想我很亲密,但是我错过了什么?)
参考:https://stackoverflow.com/a/8253200/188331
更新:标准字符集足以满足我的需求.
zzz*_*Bov 75
您需要做的就是测试角色是否在正确的角色范围内.
function isASCII(str) {
return /^[\x00-\x7F]*$/.test(str);
}
Run Code Online (Sandbox Code Playgroud)
或者,如果您想使用扩展的ASCII字符集:
function isASCII(str, extended) {
return (extended ? /^[\x00-\xFF]*$/ : /^[\x00-\x7F]*$/).test(str);
}
Run Code Online (Sandbox Code Playgroud)
Dan*_*nte 12
您不需要RegEx来执行此操作,只需检查该字符串中的所有字符是否都有0到127之间的字符代码:
function isValid(str){
if(typeof(str)!=='string'){
return false;
}
for(var i=0;i<str.length;i++){
if(str.charCodeAt(i)>127){
return false;
}
}
return true;
}
Run Code Online (Sandbox Code Playgroud)
小智 5
对于 ES2018,Regexp 支持Unicode 属性转义,可以/[\p{ASCII}]+/u用来匹配 ASCII 字符。现在已经很清楚了。
支持的浏览器: