62,025
社区成员
发帖
与我相关
我的任务
分享
function getLength(str) {
return str.replace(/[^ -~]/g, '').length;
}
function limitMaxLength(str, maxLength) {
var result = [];
for (var i = 0; i < maxLength; i++) {
var char = str[i]
if (/[^ -~]/.test(char))
maxLength--;
result.push(char);
}
return result.join('');
}
var maxLength = 11;
function onInput() {
if (getLength(this.value) > maxLength)
this.value = limitMaxLength(this.value, maxLength);
}
</script>
<input oninput="onInput.call(this)">
这个可以,我的需求是11个字符,真是日了狗。
//求正则表达式,限制用户名只能由中文或英文字母组成,关键是长度不超过7个汉字(或14个字母)的长度。也就是1个汉字算2个字母的长度:)
string input = "aaaaaBBBBBcccc";
string pattern = "^.+?[^\u4e00-\u9fa5A-Za-z]+.+?$";
int lenth = Encoding.Default.GetBytes(input).Length;
int maxCount = 14;
if (lenth <= maxCount)
{
if (Regex.Match(input, pattern).Success)
{
//匹配成功、验证失败
}
else
{
//匹配失败、验证成功
}
}
else
{
//长度超过限制、验证失败
}
@"^[\u4E00-\u9FA5a-zA-Z]+$"//最少要一个输入
@"^ [\u4E00-\u9FA5a-zA-Z]{7,}$"//保证只能输入中文和英文
Regex.Replace(input, @"[^\x00-\xff]", "aa").Length<=14//保证只能输入7个中文或者14个英文,或者两者混合
//这两个一起验证
var str = ‘验证字符串’;
var len = 0;
if (str.match(/[^ -~]/g) == null) {
len = str.length;
}else{
len = str.length + str.match(/[^ -~]/g).length;
}
return len<=你想限制的长度;