html取中间文本问题

html取中间文本问题,第1张

<html>

    <body>

        <span>数据:</span>

        <input id="src" type="text" style="width:90%" value="fafsfasfsfurl='http://www.baidu.com'sfdasdfurl2='http://www.weiyun.com'fsafrw"/>

        </p>

        <input type="button" onclick="doGet()" value="截取"/>

        </p>

        <span>结果:</span>

        <input id="viw" type="text" style="width:90%" value=""/>

    <body>

    <script type="text/javascript">

        function doGet()

        {

            var first = "url='"

            var second = "url2='"

            

            var str = document.getElementById("src").value

            var ndx1_0 = str.indexOf(first)

            var ndx1_1 = str.indexOf("'", ndx1_0+first.length)

            var ndx2_0 = str.indexOf(second)

            var ndx2_1 = str.indexOf("'", ndx2_0+second.length)

            var url = str.substring(ndx1_0+first.length, ndx1_1)

            var url2 = str.substring(ndx2_0+second.length, ndx2_1)

            

            document.getElementById("viw").value = "123" + url + "456" + url2

        }

    </script>

</html>

上代码,用的是字符串查找、字符串截取的方法。

查找url='与后面第一个'符号,取两个位置之间的字符串为第一个值。

查找url2='与后面第一个'符号,取两个位置之间的字符串为第一个值。

另外,你也可以用正则表达式实现,可以百度一下,我不太会正则。

HTML是无法读取数据库的,HTML是页面前端脚本语言,要想从HTML网页中获取SQL数据库里的数据,需要借助JSP或ASP或PHP或RUBY等语言来实现。

简单的关系可以这样理解:

数据库<--->JSP或ASP或PHP或RUBY等语言<--->HTML

如:在JSP页面中显示完整代码如下:

<%@ page

language="java"

contentType="text/htmlcharset=UTF-8"

pageEncoding="UTF-8"

%>

<%@page import="java.sql.*"%>

<center>

<H1><font color="blue" size="12">管理中心</font></H1>

<HR />

<table width="80%" border="1">

<tr>

<th>ID</th>

<th>书名</th>

<th>作者</th>

<th>价格</th>

<th>删除</th>

</tr>

<%

// 数据库的名字

String dbName = "zap"

// 登录数据库的用户名

String username = "sa"

// 登录数据库的密码

String password = "123"

// 数据库的IP地址,本机可以用 localhost 或者 127.0.0.1

String host = "127.0.0.1"

// 数据库的端口,一般不会修改,默认为1433

int port = 1433

String connectionUrl = "jdbc:sqlserver://" + host + ":" + port + "databaseName=" + dbName + "user=" + username

+ "password=" + password

//

//声明需要使用的资源

// 数据库连接,记得用完了一定要关闭

Connection con = null

// Statement 记得用完了一定要关闭

Statement stmt = null

// 结果集,记得用完了一定要关闭

ResultSet rs = null

try {

// 注册驱动

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver")

// 获得一个数据库连接

con = DriverManager.getConnection(connectionUrl)

String SQL = "SELECT * from note"

// 创建查询

stmt = con.createStatement()

// 执行查询,拿到结果集

rs = stmt.executeQuery(SQL)

while (rs.next()) {

%>

<tr>

<td>

<%=rs.getInt(1)%>

</td>

<td>

<a href="prepareupdate?ID=<%=rs.getInt("ID")%>" target="_blank"><%=rs.getString(2)%></a>

</td>

<td>

<%=rs.getString(3)%>

</td>

<td>

<%=rs.getString(4)%>

</td>

<td>

<a href="delete?ID=<%=rs.getInt("ID")%>" target="_blank">删除</a>

</td>

</tr>

<%

}

} catch (Exception e) {

// 捕获并显示异常

e.printStackTrace()

} finally {

// 关闭我们使用过的资源

if (rs != null)

try {

rs.close()

} catch (Exception e) {}

if (stmt != null)

try {

stmt.close()

} catch (Exception e) {}

if (con != null)

try {

con.close()

} catch (Exception e) {}

}

%>

</table>

<a href="insert.jsp">添加新纪录</a>

</center>

正文的前后用注释做一个标记,例如:

<!--contentbegin-->

正文

<!--contentend-->

再做个取<!--contentbegin-->和<!--contentend-->中间内容的函数。取出来后放到一个变量里。内容要更新的话就可以替换了。

关键是那个取中间内容的函数,不同语言有不同的写法。

我写个以PHP为例的:

function getmid($start,$end,$content){

$num1=strpos($content,$start)

$num2=strpos($content,$end)

$startlen=strlen($start)

$midlen=$num2-$num1-$startlen

$mid=substr($content,$num1+$startlen,$midlen)

return $mid

}

调用的时候:

假设$codes是整个的html代码,$content是正文

$content=getmid("<!--contentbegin-->","<!--contentend-->",$codes)

如果是asp,道理一样。

楼主应该是懂编程的,只要懂得如何判断一个字符变量在另一个变量里出现的位置,懂得替换,就应该可以明白原理。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/6173088.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-17
下一篇 2023-03-17

发表评论

登录后才能评论

评论列表(0条)

保存