我正在使用动态页面input#first.val()
是动态的。
我将获得的基本值是设备名称或设备分辨率。
假设input#first.val()
是设备名称,如"iPad"
,那么我就不需要任何进一步的操作了。
但如果input#first.val()
是设备分辨率,例如"1024 X 768"
,那么我想提醒用户。
那么如何检测input#first.val()
是否为设备分辨率?
此外,设备分辨率将是动态的,因此它可能看起来像这些......
常见的事情是“ _ X _ ”
那么如何在input#first.val()
中检测到“ _ X _ ”并提醒用户?
可能使用:contains
和字符串对象?
<input type="text" id="first" name="name" value=""/>
答案 0 :(得分:4)
您可以使用正则表达式对其进行测试:
if ($("input#first").val().match(/\d+\s*X\s*\d+/i)) {
// value contains ddd X ddd
}
作为解释,这个正则表达式是:
a series of one or more digits
followed by zero or more whitespace elements
followed by an "X" or "x"
followed by zero or more whitespace elements
followed by a series of one or more digits
如果您想要除分辨率编号以外没有其他内容,您可以使用:
if ($("input#first").val().match(/^\d+\s*X\s*\d+$/i)) {
// value contains ddd X ddd
}
如果您想要求每个号码至少为3位数,您可以使用:
if ($("input#first").val().match(/^\d{3,}\s*X\s*\d{3,}$/i)) {
// value contains ddd X ddd
}
另外,有没有理由使用“input#first”作为选择器而不仅仅是“#first”?较短的版本对于选择器引擎的工作较少,并且因为id必须在页面中是唯一的,它应该生成相同的结果,除非您以某种方式尝试过滤掉不在输入标记上的#first(这似乎不太可能)。