Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果.html()具有特定值_Javascript_Jquery_Html - Fatal编程技术网

Javascript 如果.html()具有特定值

Javascript 如果.html()具有特定值,javascript,jquery,html,Javascript,Jquery,Html,这可能是一个非常基本的问题,但我想知道如何确定.html()是否具有特定的值(在本例中为字符串)。例如: <p id="text">Hello this is a long text with numbers like 01234567</p> 这当然行不通。但是,我如何增强另一种方法,使之成为 if($text.html().contains() == '01234567'); 重要的是,在我的例子中,我肯定会搜索用空格分隔的东西,而不是像01234567这样用数字

这可能是一个非常基本的问题,但我想知道如何确定
.html()
是否具有特定的值(在本例中为字符串)。例如:

<p id="text">Hello this is a long text with numbers like 01234567</p>
这当然行不通。但是,我如何增强另一种方法,使之成为

if($text.html().contains() == '01234567');
重要的是,在我的例子中,我肯定会搜索用空格分隔的东西,而不是像01234567这样用数字分隔的
,但如果这也能奏效的话,那确实会很有趣


提前谢谢

据我从OP了解,以下是测试用例:

hello12348hello     // false
hello 1234hello     // false
hello012348 hello   // false
hello 1234 hello    // TRUE
1234hello           // false
hello1234           // false
1234 hello          // TRUE
hello 1234          // TRUE
                    // false
1234                // TRUE
 1234               // TRUE
**通过任何其他空白字符(例如,
\t
\n
,…)更改“
”,应得到相同的结果

正如OP所说:

对于那些用空格隔开的事物,不要用数字分隔,比如01234567

所以,
hello 01234567和类似于
的数字也是错误的

创建函数:

function contains(value, searchString){
    // option 1: splitting and finding a word separated by white spaces
    var words = value.split(/\s+/g);
    for (var i = 0; i < words.length; i++){
        if (words[i] === searchString){
            return true;
        }
    }
    return false;

    // option 1a: for IE9+
    return value.split(/\s+/g).indexOf(searchString) > -1;

    // option 2: using RegEx
    return (new RegExp("\\b" + searchString + "\\b")).test(value);
    return (new RegExp("(^|\\s)" + searchString + "($|\\s)")).test(value);  // this also works

    // option 3: Hardcoded RegEx
    return /\b1234\b/.test(value);
}

感谢@Karl AndréGagnon提供的提示

\b
:任何边界词(或字符串的开头/结尾)
^
:字符串的开头
\s
:任何空白字符
$
:字符串的结尾


据我从OP了解,以下是测试用例:

hello12348hello     // false
hello 1234hello     // false
hello012348 hello   // false
hello 1234 hello    // TRUE
1234hello           // false
hello1234           // false
1234 hello          // TRUE
hello 1234          // TRUE
                    // false
1234                // TRUE
 1234               // TRUE
**通过任何其他空白字符(例如,
\t
\n
,…)更改“
”,应得到相同的结果

正如OP所说:

对于那些用空格隔开的事物,不要用数字分隔,比如01234567

所以,
hello 01234567和类似于
的数字也是错误的

创建函数:

function contains(value, searchString){
    // option 1: splitting and finding a word separated by white spaces
    var words = value.split(/\s+/g);
    for (var i = 0; i < words.length; i++){
        if (words[i] === searchString){
            return true;
        }
    }
    return false;

    // option 1a: for IE9+
    return value.split(/\s+/g).indexOf(searchString) > -1;

    // option 2: using RegEx
    return (new RegExp("\\b" + searchString + "\\b")).test(value);
    return (new RegExp("(^|\\s)" + searchString + "($|\\s)")).test(value);  // this also works

    // option 3: Hardcoded RegEx
    return /\b1234\b/.test(value);
}

感谢@Karl AndréGagnon提供的提示

\b
:任何边界词(或字符串的开头/结尾)
^
:字符串的开头
\s
:任何空白字符
$
:字符串的结尾

您可以使用:

您的HTML可能以
01234567
开头;在这种情况下,您可以执行以下操作:

if((' ' + text).indexOf(" 01234567") != -1) {
    // your logic
}
谢谢,bjb568和Felix Kling。

您可以使用:

您的HTML可能以
01234567
开头;在这种情况下,您可以执行以下操作:

if((' ' + text).indexOf(" 01234567") != -1) {
    // your logic
}

谢谢,bjb568和Felix Kling。

您可以使用JavaScript中的String.indexOf方法来确定一个字符串是否包含在另一个字符串中。如果传入indexOf的字符串不在该字符串中,则返回-1。这是你应该利用的行为

If ($test.html().indexOf("1234567890") != -1)
    //Do Something

您可以在JavaScript中使用String.indexOf方法来确定一个字符串是否包含在另一个字符串中。如果传入indexOf的字符串不在该字符串中,则返回-1。这是你应该利用的行为

If ($test.html().indexOf("1234567890") != -1)
    //Do Something
修复了开头文本的问题,不滥用正则表达式,万岁

if($text.html().indexOf('01234567') != -1) {

}
修复了开头文本的问题,不滥用正则表达式,万岁

if($text.html().indexOf('01234567') != -1) {

}



if($text.html().indexOf('01234567')!=-1{}关于空格,简单的解决方案:
('''+.$text.html()+'').indexOf('01234567')
@Scadoodles如果中间没有空格,这个方法也可以吗?是的,contains()是jquery中的一个方法。但并不是为了你想做的:@supersize:你为什么不看看链接到的文档呢?(这里再说一遍:)。它描述了
.indexOf
的工作原理并提供了一些例子。如果($text.html().indexOf('01234567')!=-1){}关于空格,简单的解决方案:
('+.$text.html()+'').indexOf('01234567')
@scadoolds,如果中间没有空格,这个方法也可以工作吗?是的,contains()是jquery中的一个方法。但并不是为了你想做的:@supersize:你为什么不看看链接到的文档呢?(这里再说一遍:)。它描述了
.indexOf
的工作原理并提供了示例。如果
01234567
位于字符串的开头,该怎么办?您可以将。需要添加
''+text
@Gautam:这在OR条件下如何工作?是否要测试
'01234567'
'01234567'
?@FelixKling(''+text).indexOf(“01234567”)=-如果
01234567
在字符串的开头,那么1应该在这种情况下起作用。您可以将。需要添加
''+text
@Gautam:这在OR条件下如何工作?是否要测试
'01234567'
'01234567'
?@FelixKling(''+text).indexOf(“01234567”)=-我应该在那工作case@bjb568滥用正则表达式,什么?这正是正则表达式的用途。那个DV和评论完全没有意义。@supersize不。我不知道那个家伙在说什么,但我想这就是解决问题的方法。滥用??读一下:@bjb568这并不复杂,这是一个坏习惯。这个答案中的正则表达式有多复杂?它是一个标识符和一个字符串。此外,性能论证也几乎毫无意义:——在这个用例中,微优化最多。在这个基准测试中,regex的表现优于除直接比较之外的所有其他方法,直接比较在这里不是一个选项。不管这意味着什么——你的立场仍然是有缺陷的。正则表达式用于字符串操作,它是用于此项工作的正确工具,并且性能优于
indexOf
。任何人都不应该相信简单的模式对于简单的匹配操作来说“太复杂”的说法,这个建议显然是荒谬的。@bjb568滥用正则表达式,什么?这正是正则表达式的用途。那个DV和评论完全没有意义。@supersize不。我不知道那个家伙在说什么,但我想这就是解决问题的方法。滥用??读一下:@bjb568这并不复杂,这是一个坏习惯。这个答案中的正则表达式有多复杂?它是一个标识符和一个字符串。此外,性能论证也几乎毫无意义:——在这个用例中,微优化最多。在这个基准中,regex的表现优于除直接比较之外的所有其他方法,直接比较不是一个选项