ios 提取html字符串中的imgURL和移除html标签的方法

ios 提取html字符串中的imgURL和移除html标签的方法,第1张

当我们遇到后台返回的是一串html'字符串,这个字符串中包含的有imgURL标签和文字,而需要是把文字和图片分别展示出来, 这个时候就需要先把里面的图片url提取出来,然后在使用imageView展示。现在问题的关键是如何把所有的imgURL拿出来呢? 其实很简单, 一个正确的正则表达式 <(img|IMG)(.*?)(/>|></img>|>) 即可实现我们要的效果

顺便附上一个移除html标签的方法

我来回答,所用到的都是ASP读写数据库 *** 作.

没有具体的规则.

现在给你些资料

一.页面设计部分

1.img控件

alt:所有展示类图片都要具有能简要描述图片内容的文字说明。

2.Input控件

maxlength:所有INPUT控件都需要制定maxlength属性,默认值为数据库中对应的字段的长度。

readonly:所有不可更改的信息都要使用readonly属性。

3.Form控件

action:所有Form都要指定action,如果提交给本身就指定action=""

method:执行不可逆动作使用POST,可逆动作使用GET

onsubmit:所有form都要指定提交前需要的检查程序。

所有form都要有对应的reset button。

4.button控件

onclick:form中用于提交的button不容许使用此方法,所有数据检查通过form的onsubmit激活。

5.title属性

所有页面都要具有和本页标题相同的title。

6.控件的命名

采用控件类型缩写(小写)+英文单词(第一个字母大写)的方法。

开发中控件基本涉及一下几类

button:btn

form:frm

select:sel

textarea:txt

input:ipt

7.语言设置

所有中文页面都要加上如下语句:

<meta http-equiv="Content-Language" content="zh-cn">

<meta http-equiv="Content-Type" content="text/htmlcharset=gb2312">

8.控件属性赋值

所有控件的属性值都要使用双引号或者单引号包括起来。

二.客户端程序部分

1.错误提示信息的处理(2-1)

所有错误信息全部使用中文提示错误信息,标点使用中文半角符号,格式如下:

"错误:"+提示信息+"!"

2.成功提示信息的处理(2-2)

所有成功信息全部使用中文提示成功信息,标点使用中文半角符号,格式如下:

"成功:"+提示信息+"!"

3.页面的返回

所有需要返回上一页的时候使用history.back()不使用history.go(-1)

需要返回前n页(n>1)时使用history.go(-n);

所有返回都使用连接的方式而不是button。

4.提交前数据的判断

保证提交前的数据都会通过JavaScript进行数据类型以及长度的判断

是否为数字:使用函数isNaN()

长度判断: 长度要判断去掉前后空格后的实际长度

为空判断: 所有不容许为空的输入字段都要在去掉前后空格后进行判断,同时如果该字段为查询条件则必须不能为空

如果判断条件发现数据错误,则通过(2-1)提示错误信息,然后通过方法focus()聚焦错误字段。

5.删除数据前的提示

所有涉及删除的 *** 作,在用户选定以后都要再进行一次确认 *** 作。

三.服务器端程序部分

1.数据的取得

通过Get,Post,连接传递过来的数据在使用前都要通过trim去掉数据前后的空格。

2.数据的判断

通过request的得到的参数数据需要再次进行空,类型,和长度的判断。

3.对象的关闭

所有数据库和文件对象都要在使用后尽可能早的close,同时赋nothing。

4.提示信息

所有错误提示信息使用JavaScript提示,保证使用者看不到任何内部错误信息。(如1-1)

涉及数据库Update,Del,Insert的 *** 作成功都要提示。(如1-2)

5.变量的使用

所有变量在使用前都需要声明,并且赋初值。

6.变量的命名

采用变量类型缩写(小写)+英文单词(第一个字母大写)的方法。

开发中变量基本涉及一下几类

整数:i

小数:f

字符: s

布尔:b

日期:d

特殊的:

循环依次采用i,j,m,n;

数组用ary

指针p,q

临时变量tmp

七.SQL语句

1.排序

order时应该尽量提前使用建立索引或者主键的字段排序。

2.select

select时避免使用*,即使需要所有字段也应尽量一个一个按照使用的顺序罗列出来。

3.尽量避免使用in和not in

八.测试

所有页面要在800*600,1024*768两种分辨率下运行通过。

所有页面要在IE5.0,5.5以及6.0下运行通过没有JavaScript错误。

****************************************************************

WEB编码规范

编制人:walaqi

第一章 ASP编码规范通述

ASP编码分为两大部分,一部分为静态文件编码,一部分为包含服务器端脚本的动态文件编码。

静态文件编码分Script编码和HTML编码两部分。

服务器端编码则分为服务器脚本、客户端脚本、HTML脚本三部分。

编码规范采用如下约定:

所有客户端脚本一律使用JavaScript

所有服务器端脚本一律使用VBScript

静态页面输出一律使用HTML脚本

本规范不适用于由服务器端脚本所产生的客户端脚本代码

第二章 静态文件编码规范:

静态文件脚本部分采用JavaScript编写。输出部分采用HTML标记语言。

1. HTML标记语言编码规范

1.1 标记的换行规范:

* 一个标记必须占用一行。不得出现两个标记在同一行的情况(同一标记的关闭标记除外),如:

<tr><td>text</td></tr>

而必须写成:

<tr>

<td>text</td>

<tr>

1.2 标记的关闭规范

* 静态文件内容必须包含在<body></body>标记中间

* <body>标记必须包含在<html></html>标记中间

* 对于需要关闭的标记,如:

<html><title><body><table><tr><td><p><textarea><select><font><option><div><span>

必须同其关闭标记同时出现。如

<body>…<p>…<font>….</font>….</p>…..</body>

* 不得出现交叉包含的语句,如:

<p><font>…..</p></font>

1.3 标记的属性赋值规范

对于接受属性的标记,属性值必须使用双引号或者单引号包围。如:

<body bgcolor=”red”>

<font size=’7’>

1.4 标记的缩进规范

* 最高一级的父标记采用左对齐顶格方式书写。

* 下一级标记采用左对齐向右缩进一个Tab的方式书写

在下一级依此类推,分别左对齐相对于父标记向右缩进一个Tab的方式书写

* 同一级标记的首字符上下必须对齐。

2. 客户端JavaScript规范

2.1 变量命名规范

* 常量以及全局变量名必须全部使用大写字母

* 变量名首字母必须小写。

* 变量名必须使用其类型的所写字符串开始。各种类型的所写字符串如下:

* 整型变量:int

* 长整型变量:lng

* 浮点型变量:flt

* 双精度变量:dbl

* 对象引用变量:obj

* 字符串变量:str

* Date类型变量:dtm

* 变量名必须采用有意义的单词命名,如:

strUserName、lngArrayIndex

* 变量名除首字母小写外,其他单词首字符必须大写

* 如果变量名过长可以使用单词缩写,除了被广泛了解的单词缩写以外,所有使用单词所写的变量名必须在定义时给出注释,如:

var strAdName //用于表示Administrator帐户的名称

var strAdminName //不用给出注释,Admin被广泛了解

2.2 变量使用规范

* 变量使用前必须定义。没有定义的变量禁止使用

* 变量的使用尽量缩小到小的作用域。如循环使用

for(var I=0I<12I++){

}

而不是:

var I

for(I=0I<12,I++){

}

2.3 对象命名规范

各种页面对象如text输入框、按钮、下拉选择框在命名时必须使用以下对应前缀:

* text输入框:txt

* button按钮:btn

* select下拉选择框:sel

* option项:opt

* form表单:frm

* frame框架:fra

* hidden表单项:hdn

* div标记:div

* span标记:span

* 对话框对象:dlg

* 窗口对象:win

2.4 函数以及子过程命名规范

* 函数命名必须使用动词+名词对的方式,并且能够体现函数的功能

* 函数命名的动词前缀必须是同函数功能相关的完整动词

* 函数命名第一个单词的首字母小写,后面每一个单词的首字母大写

第三章 动态文件编码规范

1. HTML书写规范

HTML书写规范必须符合静态文件HTML标记书写规范,参考(第二章第一节)

2. 客户端脚本规范

动态文件客户端脚本一律采用JavaScript书写,并必须符合静态文件编码规范中有关JavaScript编码规范的规定(参考第二章第二节)

3. 服务器端脚本书写规范

服务器端脚本书写采用VBScript书写

3.1 命名规范

3.1.1 VBScript脚本变量命名规范

* 常量以及全局变量必须全部使用大写字母

* 常量必须使用CONST_前缀

* 全局变量必须使用G_前缀

* 变量名首字母必须小写。

* 变量名必须使用其类型的所写字符串开始。各种类型的所写字符串如下:

* 整型变量:int

* 长整型变量:lng

* 浮点型变量:flt

* 双精度变量:dbl

* 对象引用变量:obj

* 字符串变量:str

* Date类型变量:dtm

* 变量名必须采用有意义的单词命名,如:

strUserName、lngArrayIndex

* 变量名除首字母小写外,其他单词首字符必须大写

* 如果变量名过长可以使用单词缩写,除了被广泛了解的单词缩写以外,所有使用单词所写的变量名必须在定义时给出注释,如:

dim strAdName ‘用于表示Administrator帐户的名称

dim strAdminName ‘不用给出注释,Admin被广泛了解

3.1.2 对象命名规范

各种对象如Connection、Recordset、Command在命名时必须使用以下对应前缀:

* Connection对象:conn

* Recordset对象:rs

* Command对象:cmd

* Parameter对象:param

* Field对象:fld

* Error对象:err

3.1.3 函数以及子过程命名规范

* 函数命名必须使用动词+名词对的方式,并且能够体现函数的功能

* 函数命名的动词前缀必须是同函数功能相关的完整动词

* 函数命名第一个单词的首字母大写,后面每一个单词的首字母大写

3.1.4 常用变量命名规范:

说明:包含在[]中的部分为可省略部分

* Connection对象:conn[Name]。Name为所连接数据库的服务器名字

* Recordset变量命名规范:rs[Name]。Name为自定义的同rs存储内容有关的英文单词组合

* Command对象:cmd[Name]。Name为自定义的同command目的有关的英文单词组合

* SQL语句字符串变量:strSql[CommandName]。CommandName为自定义的同Sql语句功能相关的英文单词组合,如:

strSqlUpdateModify

strSqlInsertUser

3.2 代码书写规范

3.2.1 变量明确声明原则

* 所有ASP程序文件,必须在代码的第一行包含<%option explicit%>。转为变量明确声明模式

3.2.2 字符集设定原则

* 所有将对客户端产生中文输出的ASP程序文件,必须在输出前设定Charset为”GB2312”.如:Response.Charset = “GB2312”

3.2.3 函数使用原则

* 尽量使用函数封装代码块

* 连续代码块尽量不要超过50行。最多不得超过70行

* 尽量使用局部变量。

* 如有涉及到全局的资源,如Connection,尽量作为函数的参数传入

* 所有在函数内部创建打开的资源,在退出函数前必须关闭释放。如:Recordset,Command

3.2.4 Request、Session、Application使用规范

* 所有需要放入Session、Application中的对象,必须采用有意义的英文名字。除了被广泛了解的单词缩写以外,不得采用单词缩写。如:

Session(“cp”) = strCurrentUserIP ‘不允许

Session(“CurrentUserIP”) = strCurrentUserIP

Session(“Pwd”) = strPwd ‘允许,Pwd被广泛了解为密码

* 所有需要在代码内用到的Request、Session、Application中的元素,必须在代码头部赋值给代码内声明的变量。

* 如果获得Form中提交的内容,必须使用Request.Form(“itemName”).

* 如果获得QueryString中提交的内容,必须使用Request.QueryString(“itemName”)

* 不得在代码中出现Request(“”)这样的引用方式

3.2.5 HTML同服务器端脚本混合使用原则

* 服务器端脚本标记“<%”必须同其上一行紧邻的标记左对齐,如:

<table>

<%

do while not rs.eof

%>

<tr>

<td>text</td>

</tr>

<%

rs.movenext

loop

%>

</table>

* 服务器端脚本标记“<%”同其后的代码不得在同一行书写

* “%>”同其前面的代码不得在同一行书写

* 服务器端脚本标记”%>”同其最近的”<%”标记对齐

* 服务器端内部的HTML代码依据静态文件的HTML缩进规则编写,不遵循服务器端脚本缩进规则

* HTML标记内部的代码,依据服务器端脚本的缩进规则,不遵循HTML代码缩进规则 。

第四章 常见错误

1. ADO的事务处理

1.1 错误代码:80004005。

1.1.1 错误描述:

Microsoft OLE DB Provider for ODBC Drivers 错误 ’80004005’

不能在 firehose 方式下启动事务

1.1.2 解决方法:

在开始ADO的事务的时候,必须首先关闭使用同一个连接对象打开的记录集,或者在打开那些游标集之前,设置游标集位置类型为adUseClient.(使用客户端游标集)

第五章 代码习惯书写示例

1. ADO对象的使用

1.1 ADODB.Connection对象

1.2 ADODB.Command对象

1.3 ADODB.Recordset对象

1.3.1 创建:

Set rs = Server.CreateObject(“ADODB.Recordset”)

rs.CursorLocation = adUseClient

rs.Open strSql,conn,1[,1] ‘必须指定游标类型

一、 注释规范

A. 注释标准:

l 功能注释

功能注释是指为了对代码本身进行解释说明而进行的注释。

注释符采用“’”作为统一的注释符。

1.行内注释

采用注释符号 “’”

例:

Dim intFileNo As Integer ’ファイル番号取得用

2.整行(包括多行)注释

采用注释块开始与块结束标志

36

’************************************

’************************************

l 修订注释

修订注释是指出于测试或者改错等目的,对代码进行了更改,而必须对此修改提供相关说明和醒目标记,并将原来的代码加入注释块内。

只要有改动,无论单行还是多行均采用设置注释块开始与块结束标志的方法来明确标志修改部分,清楚地进行解释说明,便于查找和分辨注释比较多的代码段。

15 15

’*************** Modify Start ***************

’*************** End ***************

B. 需要注释的地方:

声明定义部分

对每个常量声明进行注释;

对每个变量及类、对象等的声明进行注释;

对每个自定义函数定义进行注释;

对每个自定义子程序定义进行注释;

代码部分

对每个构件,在顶部进行注释;

对每个条件选择分支进行注释;

对每个详细设计中提到的关键点进行注释;

对全局变量的使用进行注释;

C. 注释的内容:

l 对变量及常量声明部分的注释以行内注释方式简要描述其用途。

l 自定义函数及子程序等定义部分的顶部进行注释:

’************************************

’ 概要:

’ 机能说明:

’ 参数说明:

’ 返回值:

’ 备注:

’************************************

l 代码内部的行内注释

说明具体代码的运算规则,循环的内容,计数器的目的等等。

l 修订注释

’*************** Modify Start ***************

’ 修订原因:

’ 修订履历:

’ 修订者 修订日期

’ 原始代码:

’ Case 5 To 8

’ ……

Case 4 To 8

’*************** End ***************

D. 注释的方法:

对代码行可以在行尾加注释(不能违反行宽的要求);

对单行代码的注释可以在上一行以“’”的形式添加简单注释;

对整段代码的注释放在代码段之前;

注释符统一采用“’”。

二、命名规范

A.通则

VisualBasic保留字可在VisualBasic设计器中根据颜色的变化看到。变量命名不可以使用保留字,应使用有意义的名字命名,不可使用简称和无意义的名称诸如A,x1等。即便对于只用于循环计数的变量,也应该统一赋予有意义的名称,例如longCnt等。

不能起太长的名字,应该尽量简洁,长度限制应控制在32个字符之内。

B.常数

全部使用大写字母以表明常数意义的名词命名,不区分常数的类型:

Const DEFAULTCONCENTRATION As Single = 0.01

C.变量

命名必须使用大小写结合(VB编辑器会自动转换以减少程序出错的机率)

变量命名采用[范围前缀][数组前缀][类型前缀]+[自定义命名]

控件命名采用[控件前缀]+[自定义命名]

变量范围做前缀

范围 前缀 例子

全局变量 g gStrUserName

模块级 m mStrUserName

过程级 无 StrUserName

数组前缀: a

类型前缀:

数据类型 前缀 例子

Boolean Bln BlnFound

Byte Byt BytRasterDate

Currency Cur CurBalance

Date Dtm DtmBeginDate

Double Dbl DblFee

Integer Int IntQty

Long Lng LngVcID

Single Sng SngAverage

String Str StrItemId

Object Obj ObjRmtsvr

ADODB.Recordset Rst RstItem

ADODB.Connection Cnn cnnNewsPaper

ADODB.Command Cmm CmmAddCustomer

Variant Vnt VntCheck

自定义类型 Udt UdtUserInfo

控件类型命名前缀

控件类型 前缀 例子

ADO Data ado AdoBiblio

Check box chk ChkReadOnly

Combo box, drop-down list box cbo CboEnglish

Command button cmd CmdExit

Common dialog dlg DlgFileOpen

Data-bound combo box dbcbo DbcboLanguage

Data-bound grid dbgrd DbgrdQueryResult

Data-bound list box dblst DblstJobType

Data combo dbc DbcAuthor

Data grid dgd DgdTitles

Data list dbl DblPublisher

Directory list box dir DirSource

Drive list box drv DrvTarget

File list box fil FilSource

Form frm FrmEntry

Frame fra FraLanguage

Graph gra GraRevenue

Grid grd GrdPrices

Horizontal scroll bar hsb HsbVolume

Image img ImgIcon

Image combo imgcbo ImgcboProduct

ImageList ils IlsAllIcons

Label lbl LblHelpMessage

Line lin LinVertical

List box lst LstPolicyCodes

ListView lvw LvwHeadings

Menu mnu MnuFileOpen

Month view mvw MvwPeriod

MS Chart ch ChSalesbyRegion

MS Flex grid msg MsgClients

MS Tab mst MstFirst

Option button opt OptGender

Picture box pic PicVGA

ProgressBar prg PrgLoadFile

Remote Data rd RdTitles

Slider sld SldScale

Spin spn SpnPages

StatusBar sta StaDateTime

SysInfo sys SysMonitor

TabStrip tab TabOptions

Text box txt TxtLastName

Timer tmr TmrAlarm

Toolbar tlb TlbActions

TreeView tre TreOrganization

UpDown upd UpdDirection

Vertical scroll bar vsb VsbRate

自行开发ActiveX控件的前缀根据具体项目的设计时规定。

D. 标签

标签就是用于Goto跳转的代码标识,由于Goto并不推荐使用,所以标签的使用也比较苛刻。标签必须全部大写,中间的空格用下划线_代替,而且应该以_开头,比如:

_A_LABEL_EXAMPLE:

如此定义标签是为了与其他代码元素充分区别。

E.方法

无论是函数还是子程序,方法都必须以动词或动词短语命名。无需区分函数和子程序,也无需指明返回类型。

Sub Open(ByVal StrCommandString As String)

Function SetCopyNumber(ByVal IntCopyNumber As Integer) as Integer

参数需要指明ByVal还是ByRef,这一点写起来会让程序变长,但非常必要。如果没有特别情况,都使用ByVal。参数的命名方法,参考 “变量的命名方法”。

三、 书写格式规范

A. 程序的书写顺序

该构件的概要注释说明

变量声明

过程声明

代码段1

代码段2

……

B. 大小写

变量名范围前缀用小写,每个单词第一个字母用大写

函数、过程、对象名也要求每个组成单词字首大写

C. 缩进

统一开发环境,设定VisualBasic设计器的开发环境选项,定义Tab宽度为4。代码缩进时,先选中要缩进的代码块,然后使用快捷键是Tab(右移)和Shift+Tab(左移);如果手工输入空格完成缩进,以4个空格为单位。

在If语句后缩进;

在Else语句后缩进

在Select Case语句后缩进

在Case语句后缩进

在Do语句后缩进

在For语句后缩进

已经用行接续符分割的语句的各个行要缩进

在With语句后缩进。

对从属于行标注的代码进行缩进。

D. 空格

运算符前后都要空格,包括:+,-,*,/,^,=,>,>=,<,<=,<>,NOT,AND,OR等;

E. 空行

变量声明部分和代码语句间的分隔;

在执行统一任务的各个语句组之间插入一个空行。好的代码应由按逻辑顺序排列的进程或相关语句组构成。

F. 页宽

对较长语句,如API声明等,在代码窗体可视范围内给予换行,不要使别人必须通过滚动窗口才能查看到完整的代码,单行代码长度不超过95列。

使用“&_ ”换行符。

G. 其他

在项目组内部,根据需要统一VisualBasic开发环境参数。

四、 代码检查

代码检查的合格标准

注释完整、命名规范、条理清晰、可读性强的代码视为合格代码。

检查办法

发现未遵循本编码规范的情况视为不合格;

五、 建议性规范

l 有的时候可能需要违背好的编程原则,或者使用了某些不正规的方法,遇到这种情况时,必须用详细的注释来说明在做什么和为什么要这样做。

技巧性特别高的代码段,一定要加详细的注释,不要让其他开发人员花很长时间来研究一个高技巧但不易理解的程序段。

l 对注释进行缩进,使之与后随的语句对齐。

注释通常位于它们要说明的代码的前面。为了从视觉上突出注释与它的代码之间的关系,请将注释缩进,使之与代码处于同一个层次上

六、 其他

对文档的理解产生的歧义由引用此文档的项目的项目负责人统一解释。

相信对你有所帮助 3545希望对你有帮助!

`[a-zA-z0-9/\.\-]`是一个正则表达式中的字符集合,表示匹配所有的字母、数字、正斜杠、点号和短横线。其中,`a-z`表示匹配所有小写字母,`A-Z`表示匹配所有大写字母,`0-9`表示匹配所有数字,`/`表示匹配正斜杠,`\.`表示匹配点号(注意需要转义),`\-`表示匹配短横线。这个字符集合通常用于限制一个文本框或输入框中可以输入的字符范围,以确保用户输入的内容符合特定的格式或规则。例如,在一个网页的表单中,可能会有一个输入框要求用户输入一个URL地址,那么就可以使用这个字符集合来限制用户只能输入URL地址中允许的字符,以避免用户输入无效的URL地址。


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

原文地址: https://outofmemory.cn/zaji/6289006.html

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

发表评论

登录后才能评论

评论列表(0条)

保存