jQuery或JavaScript相当于PHP strpos函数在页面上查找字符串

Tom*_*Tom 39 javascript jquery

strpos在PHP 或jQuery中有类似于PHP 的等效函数吗?

我想在页面上的元素中找到一个字符串.我正在寻找的字符串是:

td class="SeparateColumn"
Run Code Online (Sandbox Code Playgroud)

我想要一些我可以像这样运行的东西来找到:

if $("anystring")
  then do it
Run Code Online (Sandbox Code Playgroud)

JAL*_*JAL 62

我假设你的意思是检查一个字符串是否包含一个字符,以及字符串中的位置 - 你想indexOf()在JS中使用字符串的方法.以下是相关文档.


好的,所以你想搜索整个页面!该:contains()选择将这样做.见jQuery的文档进行:contains.

要搜索页面中的每个元素,请使用

var has_string = $('*:contains("search text")');
Run Code Online (Sandbox Code Playgroud)

如果你回来了jQuery元素,那么搜索就是成功的.例如,在这个页面上

var has_string=$('*:contains("Alex JL")').length
//has_string is 18
var has_string=$('*:contains("horsey rodeo")').length
//has_string if 0. So, you could an `if` on this and it would work as expected.
Run Code Online (Sandbox Code Playgroud)

  • 当然,在示例中包含'horsey rodeo'的行为使得最后一部分在技术上是错误的,但我们不会陷入这个难题. (2认同)

Spu*_*ley 42

你不需要jquery - 使用这个.indexof()方法,普通的旧Javascript就可以了.

但是,如果你真的想要PHP的strpos()的精确语法匹配,这样的事情会这样做:

function strpos (haystack, needle, offset) {
  var i = (haystack+'').indexOf(needle, (offset || 0));
  return i === -1 ? false : i;
}
Run Code Online (Sandbox Code Playgroud)

注意:此函数取自此处:http://phpjs.org/functions/strpos:545

的jsfiddle

  • @YouBook是旧版IE不支持的Array.indexOf(),而不是String.indexOf(). (13认同)