允许字母、数字、小数、空格和下划线的正则表达式模式

Posted

技术标签:

【中文标题】允许字母、数字、小数、空格和下划线的正则表达式模式【英文标题】:Regex pattern allowing alphabets, numbers, decimals, spaces and underscore 【发布时间】:2012-12-12 01:16:06 【问题描述】:

我不擅长正则表达式模式。 我必须对字符串进行验证,以允许

only alphabets, numbers, decimals, spaces, comma and underscore 

允许我使用/^[a-zA-Z][a-zA-Z\\s]+$/ 的字母和空格 请帮助我在一个模式中创建上述所有条件。

谢谢

【问题讨论】:

不知道你为什么要添加一个jQuery标签......数字和小数之间有什么区别。 “小数”是小数点吗?我加了,以防万一。 【参考方案1】:

这个正则表达式应该可以满足你的要求

'[a-zA-Z0-9_. ,]*'

在正则表达式中,我指定了范围 a 到 z、A 到 Z(大写)、0 到 9 和单个字符 _、小数点“.”、空格和逗号。

如果您想确保在第一个字母后至少需要一个字符,您可以将 * 替换为 +,或将 2, 替换为至少 2 个字符,或将 2,5 替换为 2和 5 个字符。

【讨论】:

+1 解释,感谢您的及时回复,让我检查一下 \s 不仅仅是“空间”。它匹配任何空白字符:制表符、空格、换行符、回车符,我认为还有 2 个其他字符。 当他要求“空格”时,我覆盖了所有空格,但如果要求只是一个“空格”,我已经更改了正则表达式【参考方案2】:

你可以试试:

/^[\w., ]+$/

不知道对起始字符有什么要求,如果有的话。

【讨论】:

【参考方案3】:

Rahul 的回答给了我思考的方向,但对于游客来说,也许这也能有所帮助

patternForClasName      =   /^([a-zA-Z0-9 _]+\.)*[a-zA-Z0-9 _]+$/;  
// Allowing valid className which has a format abcsasa.dsd.dsd(the class or a package name can have an underscore or a numerical)

patternForName          =   /^([a-zA-Z0-9 _-]+)$/;
// Allowing alphanumeric + spaces + (_)underscore and a (-)dash

patternForDescription   =   /^([a-zA-Z0-9 _-]+[\,\.]+)*[a-zA-Z0-9 _-]*$/;
  // Allowing alphanumeric,spaces, (_)underscore, (-)dash, comma, decimal

patternURLFormat        = /(ftp|http|https):\/\/(\w+:0,1\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/;

// For a valid URL

【讨论】:

以上是关于允许字母、数字、小数、空格和下划线的正则表达式模式的主要内容,如果未能解决你的问题,请参考以下文章

初识正则表达式二

Winforms 文本框允许用户只输入字母、数字、点和单词之间的空格。正则表达式

英尺和英寸的正则表达式 - 带小数和分数

用于文本框验证的 HTML5 正则表达式模式:仅允许字母、空格和某些字符

python实现包含字母数字、小数点、下划线的密码6-12位的正则表达式

允许字母数字、-、_ 和空格的正则表达式