jquery - 如何测试字符串是否包含 "__X__",如果包含则发出警报();

标签 jquery jquery-selectors

我正在开发动态页面,其中 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/

相关文章:

javascript - 脚本的奇怪行为

jQuery 选择具有特定 CSS 的元素

jquery - 子选择器已弃用

javascript - 获取 jcarousel 中当前项目的 id

javascript - 在搜索中考虑特殊字符

javascript - 重新编码fly-out menu函数使parent LI的 "sticky"

css - jquery 选择器与 css3 选择器的性能对比

javascript - $(this) 在插件选项中

jquery - 在 jQuery 中使用 nth-of-type 选择前十个元素

javascript - :not() in various guises isn't working