我正在开发动态页面,其中 input#first.val()
是动态的。
基本上我将获得的值是设备名称或设备分辨率..
如果 input#first.val()
是设备名称,例如 “iPad”
,那么我不需要任何进一步的操作。
但是如果 input#first.val()
是设备分辨率,例如 "1024 X 768"
,那么我想提醒用户。
那么如何检测 input#first.val()
是否是设备分辨率?
此外,设备分辨率将是动态的,因此它可能看起来像其中任何一个......
- “1024 X 768”
- “480 X 640”
- “320 X 480”
常见的是“_ X _”
那么如何在 input#first.val()
中检测“_ X _”并提醒用户?
也许使用 :contains
和字符串对象?
<input type="text" id="first" name="name" value=""/>
最佳答案
您可以使用正则表达式来测试它:
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 (这似乎不太可能)。
关于jquery - 如何测试字符串是否包含 "__X__",如果包含则发出警报();,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8853166/