限制只能中文输入的方法(转)

实现函数:
function isCharsInBag (s, bag)
{
var i,c;
for (i = 0; i < s.length; i++)
{
c = s.charAt(i);//字符串s中的字符
if (bag.indexOf(c) > -1)
return c;
}
return "";
}
检查函数:
function ischinese(s)
{
var errorChar;
var badChar = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789>errorChar = isCharsInBag( s, badChar)
if (errorChar != "" )
{
report=report+"请重新输入中文 ";
return false;
}

return true;
}
就这么简单:)其实还输入日语,晕


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10294527/viewspace-124621/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/10294527/viewspace-124621/

在不同的开发场景下,使用`pattern`限制输入内容只能为汉字有不同的方法: - **Android开发**:可以使用正则表达式来限制输入。以下是一个示例代码,通过设置输入过滤器来实现只能输入汉字的功能: ```java import java.util.regex.Pattern; import android.text.InputFilter; import android.text.Spanned; import android.widget.EditText; public class ChineseInputFilter implements InputFilter { private Pattern pattern = Pattern.compile("[\u4e00-\u9fa5]"); @Override public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) { StringBuilder builder = new StringBuilder(); for (int i = start; i < end; i++) { if (pattern.matcher(String.valueOf(source.charAt(i))).matches()) { builder.append(source.charAt(i)); } } return builder.toString(); } } // 在Activity中使用 EditText editText = findViewById(R.id.edit_text); editText.setFilters(new InputFilter[]{new ChineseInputFilter()}); ``` 上述代码通过自定义`InputFilter`,利用正则表达式`[\u4e00-\u9fa5]`匹配汉字,过滤掉非汉字字符。 - **VBA开发**:可以通过`vbscript.regexp`对象结合正则表达式来判断输入内容是否为汉字。示例代码如下: ```vba Private Sub CommandButton1_Click() If FrmMain.TextBox1.Text = "" Then '判断非空 MsgBox "请填报姓名!", vbOKOnly, "提示" Exit Sub End If If Len(FrmMain.TextBox1.Text) > 4 Then '判断姓名长度 FrmMain.TextBox1.Text = "" MsgBox "姓名长度超过4个字,请重新输入!", vbOKOnly, "提示" Exit Sub End If With CreateObject("vbscript.regexp") '判断只能输入中文 .Global = True .Pattern = "[^\u3447-\uFA29]" If .Test(FrmMain.TextBox1.Text) Then FrmMain.TextBox1.Text = "" MsgBox "只能输入中文汉字", vbOKOnly, "提示" End If End With End Sub ``` 这段代码通过`vbscript.regexp`对象的`Pattern`属性设置正则表达式`[^\u3447-\uFA29]`,来判断输入内容是否为汉字,如果包含非汉字字符则清空输入框并给出提示 [^3]。 - **HTML开发**:对于HTML中的文本框`input`,可以使用`onkeyup`和`onafterpaste`事件结合正则表达式来实现只能输入汉字的功能。示例代码如下: ```html <input onkeyup="this.value=this.value.replace(/[^\u4e00-\u9fa5]/g,'')" onafterpaste="this.value=this.value.replace(/[^\u4e00-\u9fa5]/g,'')"> ``` 该代码通过`onkeyup`和`onafterpaste`事件,使用正则表达式`/[^\u4e00-\u9fa5]/g`替换掉非汉字字符,从而保证输入框中只能输入汉字 [^4]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值