Javascript 测试文本区域中的特定文本格式
我正在编写一些javascript来验证文本区域中的用户输入。以下是对输入格式的要求:Javascript 测试文本区域中的特定文本格式,javascript,html,Javascript,Html,我正在编写一些javascript来验证文本区域中的用户输入。以下是对输入格式的要求: 输入必须采用两个十六进制值的格式,用空格分隔(即A7 B3 9D) 输入必须是有效的十六进制值 我用regExpressionvalueOne.match(“[0-9A-Fa-f]{1}”)整理了需求#2(或者至少我希望这是推荐的方法)。所以我只是想了解一些关于如何以一种简单而有效的方式处理第一个需求的信息 谢谢 这个正则表达式可以: /^[0-9A-F]{2}(\s[0-9A-F]{2})*$/i 即:
valueOne.match(“[0-9A-Fa-f]{1}”)
整理了需求#2(或者至少我希望这是推荐的方法)。所以我只是想了解一些关于如何以一种简单而有效的方式处理第一个需求的信息
谢谢 这个正则表达式可以:
/^[0-9A-F]{2}(\s[0-9A-F]{2})*$/i
即:
^ // beginning of string
[0-9A-F]{2} // two characters of 0-9 or A-F
(\s[0-9A-F]{2})* // zero or more instances of a space followed by
// two characters of 0-9 or A-F
$ // end of string
其中末尾的i
标志使其不区分大小写
要使用它:
var valueOne = // set to your textarea's value here
if (/^[0-9A-F]{2}(\s[0-9A-F]{2})*$/i.test(valueOne)) {
// is OK, do something
} else {
// is not OK, do something
}
“必须采用由空格分隔的两个十六进制值的格式”-但您的示例是由空格分隔的三个十六进制值。你的意思是两组由空格分隔的十六进制数字吗?我的解释是,它可以是用户想要的任意多对十六进制值,但它们都必须用空格分隔。谢谢你的提醒。@nnnnnnnn我想他指的是两个六边形字符的序列,用空格隔开。实际上,它应该描述一个字节序列hex@nmenego-对不起,我最初使用的是
A-Z
,但随后立即意识到我的错误,并将其改为A-F
。您的描述中说,它将检查由零个或多个空格实例分隔的两个有效十六进制值,然后检查两个有效十六进制值字符,这就是字符串的结尾?我对“字符串结束”行有点困惑,它会检查文本区域中的十六进制对,还是只检查两对,然后结束字符串?还有,有没有办法专门检查两对之间是否只有一个空格?谢谢你的帮助!表达式此部分中的*
:(\s[0-9A-F]{2})*
表示括号内的部分将被匹配零次或多次,匹配次数没有上限。因此该部分将匹配“AA”
或“AA BB”
或“AA BB CC DD EE FF 11 4F”
(等)。匹配字符串结尾的$
是确保最后一个有效的两位数十六进制数和字符串结尾之间没有其他字符\s
匹配单个空白字符,但请注意,也匹配制表符等-要仅匹配空白字符,请使用/^[0-9A-F]{2}([0-9A-F]{2})*$/i
。试试看。。。