首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我需要用什么正则表达式来检查一些非拉丁字符?

我需要用什么正则表达式来检查一些非拉丁字符?
EN

Stack Overflow用户
提问于 2010-03-31 14:43:14
回答 3查看 7.1K关注 0票数 10

我正在检查一个字段是否为拉丁字符。

代码语言:javascript
复制
var foreignCharacters = $("#foreign_characters").val();
var rlatins = /[\u0000-\u007f]/;

if (rlatins.test(foreignCharacters)) {
  alert("This is Latin Characters");
} else {
  alert("This is non-latin Characters");    
}

这工作得很好,但我想更改它,以便当我输入任何非拉丁字符时,例如中文字符,以及一个空格(它在我当前使用的范围内),它仍然会说它是非拉丁字符。

我怎样才能改变我必须这样做的正则表达式呢?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-03-31 15:04:12

只需测试是否存在非ascii字符,而不是测试是否存在ascii字符:

代码语言:javascript
复制
var foreignCharacters = $("#foreign_characters").val();
var rforeign = /[^\u0000-\u007f]/;

if (rforeign.test(foreignCharacters)) {
  alert("This is non-Latin Characters");
} else {
  alert("This is Latin Characters");    
}
票数 15
EN

Stack Overflow用户

发布于 2012-11-30 02:06:54

如果你想检查整个字符串,使用(在php中)

代码语言:javascript
复制
preg_match('/^[\x{0000}-\x{007F}]*$/u',$s);
票数 4
EN

Stack Overflow用户

发布于 2020-06-04 18:00:03

使用代码点范围制作自己的正则表达式的另一种方法是使用xregexp library

文档中的一些示例:

代码语言:javascript
复制
XRegExp('^\\p{Hiragana}+$').test('ひらがな'); // -> true
XRegExp('^[\\p{Latin}\\p{Common}]+$').test('Über Café.'); // -> true
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2550951

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档