-1

我正在尝试使用正则表达式来查找变量是否包含输入字段。

我变量中的 html 可能是这样的。

<span>test here</span>

或者

 <span><input type="text"></span>

我的代码就像

//$(this) is be my variable

if($(this).html().match("/<input type='text'>/")){
          console.log('match found')
 }

它似乎无法找到匹配项。任何人都可以帮助我吗?多谢!

4

3 回答 3

3

怎么样

if ($(this).find('input[type="text"]').length) {
    console.log('match found');
}

如果this是一串 HTML 文本(如所示),您仍然可以使用相同的代码,例如

$('<span>test here</span>').find('input').length // equals 0

$('<span><input tyep="text"></span>').find('input').length // equals 1
于 2013-08-21T22:35:04.677 回答
1

我不确定您要做什么,但我相信这会得到与上述相同的结果$(this).find('input[type="text"]')

如果你正在寻找一个正则表达式/input\s+[^>]*type\s*=\s*['"]text['"]/应该做的伎俩。

于 2013-08-21T22:36:47.900 回答
0

如果您在输入标签的正则表达式之后,这可能是一个基本的:

<input .*type=['"]text['"].*/>

这将匹配任何带有 type="text" (双引号或单引号)的输入标签以及介于两者之间的任何属性。

如果输入元素已经在页面上,我建议使用 jQuery:

if($('input[type=text]').length > 0){
   console.log('match found');
}

请注意输入元素不需要结束标签

<input type="text"></input>反而<input type="text" />

于 2013-08-21T22:44:13.200 回答