JS正则表达式不工作

JS regex not working

本文关键字:工作 正则表达式 JS      更新时间:2023-09-26

我有以下代码:

searchSt="Test",searchEd="in";

var html = body.clone()
    .children()
    .remove()
    .end()
    .text();
alert(searchSt + "|" + searchEd);
var patt = searchSt + "(.*)" + searchEd;
var result = html.match(patt);
alert(result[0]); //returns null

这返回null,尽管我确信单词在那里:html:

Hello World
Test Write SomeThing here is Words do it. hit in me 

怎么了?

如果您使用JQuery,代码应该如下:

<html>
<head>
<title>Test</title>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<body>
Hello World
Test Write SomeThing here is Words do it. hit in me 
</body>
</html>
<script type="text/javascript">
    var searchSt = "Test", searchEd = " in";
    var html = $('body').clone().children().remove().end().text();
            alert(searchSt+"|"+searchEd);
            var patt = searchSt+"(.*)"+searchEd;
            var result = html.match(patt);
            alert(result[0]);//returns null
</script>

请确保将脚本放置在body标记下方。如果它在上面,则找不到body标签。此外,我还改变了获取body$("body")的方式。

regex 没有问题

这看起来不像是正则表达式的问题。可能是别的什么
在此处测试http://ideone.com/nNwz3

var html = "Hello World'
Test Write SomeThing here is Words do it. hit in me";
var searchSt = "Test", searchEd = " in";
var patt = searchSt+"(.*)"+searchEd;
var result = html.match(patt);
print ("'" + result[0] + "'");
print ("'" + result[1] + "'");

输出

'Test Write SomeThing here is Words do it. hit in'
' Write SomeThing here is Words do it. hit'

在RegExp构造函数中放入一个字符串正则表达式(如果需要,可以换行):

var re = new RegExp(searchSt + "(.*)" + searchEd); // => /Test(.*)in/

带倒条:

var re = new RegExp("''d"); // => /'d/