正则匹配html标签中的内容,js正则表达式匹配字符串中是否有

  正则匹配html标签中的内容,js正则表达式匹配字符串中是否有

  前言

  最近写组件的时候需要传入一个html字符串,这个字符串用了很多规则来判断是不是html标签或者匹配标签里的文本等等。所以记录在这里。

  如何判断传入的字符串包含一个闭合html标签

  /\/?[a-z][\s\S]*/i这个其实不能判断标签闭包的完整性或者顺序,只是判断字符串中是否有html标签(包括自定义标签),对我来说就够了。在这个规则中你需要学习的是[\s\S]可以表示所有的字符串。

  /([a-z][\s\S]*)。*\/\1/i这个比较规范,可以匹配一个完全封闭的标签。\1表示前面括号中捕获的内容,这是常规和高级用法。

  如何匹配出一个标签内的文本内容

  str=str.replace(/title[\s\S]*?\/title/, title new title \/title );最好使用语义标签或自定义标签进行匹配。如果像div这样一个字符串里可能有很多,那问题就多了。[sS]*代表后面跟有?表示非贪婪模式,因为常规匹配默认是贪婪模式的总结

  从html标签中有规律的匹配单词,其实是一种非常低效的方式,在不必要的时候用也没必要。有一篇文章对这种行为进行了深刻的批判。有兴趣的可以看看。

  常见正则表达式

  匹配汉字的正则表达式:[u4e00-u9fa5]

  评论:匹配中文真的很头疼。这个表达式很容易做到。

  匹配双字节字符(包括汉字):[x00-xff]

  注释:它可以用来计算一个字符串的长度(一个双字节字符长度是2,ASCII字符是1)

  匹配空行的正则表达式:ns*r

  备注:可用于删除空行。

  匹配HTML标签的正则表达式:(S*?)[^]*.*?.*?/

  评论:网上流传的版本太烂了,上面的只能匹配一部分,对于复杂的嵌套标签还是无能为力。

  匹配前导和尾随空白字符的正则表达式:s * s * $

  注释:一个非常有用的表达式,可以用来删除空白字符(包括空格、制表符、分页符等。)在一行的开头和结尾。

  匹配电子邮件地址的正则表达式:w ([-。]w )*@w ([-。]w )*。w ([-。]w )*

  评论:在验证表单时非常实用。

  匹配URL的正则表达式:(http https): \/\ [\ w \-_] (\。[\ w \-_]) ([\ w \-\。 @?^=%amp;/~\ #]*[\w\-\@?^=%amp;/~\ #])?$

  评论:网上流传的版本功能有限,上面这个基本能满足需求。

  匹配账户是否合法(以字母开头,允许5-16个字节,允许字母数字下划线):[a-za-z] [a-za-z0-9 _] {4,15} $

  评论:在验证表单时非常实用。

  匹配的国内电话号码:d{3}-d{8}d{4}-d{7}

  备注:匹配形式为0511-4405222或021-8788822。

  匹配腾讯QQ号码:[1-9][0-9]{4,}

  评论:腾讯QQ号10000起。

  匹配中国的邮政编码:[1-9]d{5}(?d)

  评论:中国的邮政编码是6位数字。

  匹配的身份证:d{15}d{18}

  评论:中国的身份证有15或18位数。

  匹配的ip地址:D.D.D.D。

  注释:提取ip地址时有用

  匹配特定号码:

  [1-9]d * $//匹配一个正整数

  -[1-9]D * $//匹配负整数

  ^-?[1-9]d*$ //匹配一个整数

  [1-9]d * 0 $//匹配一个非负整数(正整数0)

  -[1-9]d * 0 $//匹配非正整数(负整数0)

  [1-9] d *。d * 0。d *[1-9]d * $//匹配正浮点数。

  -([1-9] d *。d * 0。d *[1-9]d *)$//匹配负浮点数

  ^-?([1-9]d*。d*0.d*[1-9]d*0? 0 0)$//匹配浮点数

  ^[1-9]d*.d*0.d*[1-9]d*0? 0 0 $//匹配非负浮点数(正浮点数0)

  ^(-([1-9]d*.d * 0 . d *[1-9]d *) 0? 0 0 $//匹配非正浮点数(负浮点数0)

  点评:在处理大量数据时有用,在具体应用中注意修正。

  匹配特定字符串:

  [a-za-z]$//匹配由26个英文字母组成的字符串。

  [A-Z]$//匹配由26个大写英文字母组成的字符串。

  [A-Z]$//匹配由26个小写英文字母组成的字符串。

  [A-ZA-Z0-9]$//匹配由数字和26个英文字母组成的字符串

  ^w $///匹配由数字、26个英文字母或下划线组成的字符串。

  使用RegularExpressionValidator验证控件时,验证函数及其验证表达式介绍如下:

  只能输入数字:"[0-9] * $ "

  只能输入n位数字:“d {n} $”

  您只能输入至少n个数字:“d {n,} $”

  只能输入m-n位数字:“d {m,n} $”

  您只能输入以零和非零开头的数字:“(0 [1-9] [0-9] *) $”

  只能输入两位小数的正实数:“[0-9](。[0-9] {2})?$"

  只能输入1-3位小数的正实数:“[0-9](。[0-9] {1,3})?$"

  只能输入非零正整数:“?[1-9][0-9]*$"

  只能输入非零的负整数:"-[1-9] [0-9] * $ "

  您只能输入长度为3:"的字符。{3} $"

  您只能输入26个英文字母的字符串:“[a-za-z] $”

  您只能输入由26个大写英文字母组成的字符串:“[a-z] $”

  您只能输入由26个小写英文字母组成的字符串:"[a-z] $ "

  您只能输入由数字和26个英文字母组成的字符串:“[A-ZA-Z0-9] $”

  您只能输入由数字、26个英文字母或下划线组成的字符串:“^w $”

  验证用户密码:“[a-za-z] w {5,17} $”。正确的格式是:以字母开头,介于6到18之间,只能包含字符、数字和下划线。

  请验证它是否包含%“”;=?$ 和其他字符:"[% ,=?$x22]"

  只能输入汉字:"[U4E00-U9FA5],{0,} $ "

  电子邮件地址:“w [-。] w) * @ w ([-。] w) *。w ([-。] w) * $ "

  验证电话号码:“((d {3,4}) d {3,4}-)?d{7,8}$ "

  正确的格式是:“XXXX-XXXXXXXX”、“xxxx-

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: