用href验证空锚,而不是用name验证空锚的正则表达式
Regular Expression to validate empty anchor with href and not empty anchor with name
早些时候,我使用以下RegExp来验证锚与HREF属性应该有文本:
//regex for invalid anchor tag like: <a href="#"/> or <a href="#"> </a>
var pattern = new RegExp('<a [^>]*(/>|>''s*</a>)', 'g');
现在我有了额外的验证要求,如果带有name属性的锚没有文本,它应该显示有效,如下面的例子所示:
<a href="www.google.com">the link</a> Don't Match
<a name="google"></a> Don't Match
<a href="www.google.com"> </a> Match
<a href="www.google.com"></a> Match
<a name="google">the link</a> Match
我使用以下代码来匹配正则表达式:
function validateText(text, rteObj) {
//regex for invalid anchor tag like: <a href="#"/> or <a href="#"> </a>
var pattern = new RegExp('<a [^>]*(/>|>''s*</a>)', 'g');
var textMatch = text.match(pattern);
if (textMatch) {
rteObj.findParentByType("tabpanel").activate(rteObj.findParentByType("panel"));
rteObj.markInvalid("Please remove the invalid anchor tags from the text content");
return false;
}
return true;
}
谢谢你,问候。
我想,这就是你想要的:
<a.*(?=name='"([^'"]*)'")[^>]*>([^$|'s+]*)<'/a>
工作例1
它将捕获<a name="google"></a>
(在您的情况下是有效的),但不捕获<a name="google">the link</a>
。
编辑1:
根据您的评论,以下regex将执行反向逻辑:
<a.*(?=name='"([^'"]*)'")[^>]*>([^<]+)<'/a>
工作例2
编辑2:
根据您的附加请求匹配<a href="#"> </a>
:
<a.*(?=href='"([^'"]*)'")[^>]*>([^<]+)<'/a>
工作例3
编辑3:
基于提问者的评论,只验证空值,例如<a href="#"> </a>
而不验证<a href="#">The link</a>
:
<a.*(?=href='"([^'"]*)'")[^>]*>([^'s+]+|[^'S+]+)<'/a>
工作例4
编辑4:
由于提问者总是在编辑问题,这里是最后(最后)更新:
<a.*(?=href='"([^'"]*)'")[^>]*>([^'s+]+|[^'S+]+|'w*)<'/a>|<a.*(?=name='"([^'"]*)'")[^>]*>('s*'S+.*)<'/a>
它将验证:
<a href="www.google.com">the link</a> Don't Match
<a name="google"></a> Don't Match
<a href="www.google.com"> </a> Match
<a href="google.com"></a> Match
<a name="google">The link</a> Match
工作例5
相关文章:
- 正在验证8个真/假复选框或复选框中的2个
- 借助asp.net验证或java脚本对多个文本进行验证
- jQuery自定义验证比较多个输入的序列
- 使用html中的外部javascript进行数据验证
- 如何使用jquery Validation验证Formspread
- jquery中的文本框验证
- 在验证和发送邮件后更改联系人表单的 html
- 代码不会验证
- JS验证ajax返回的html中的表单数据
- 同步调用,直到用户通过angular验证为访问者
- 带有加号的电话号码验证(可选)
- 解析javascript表单验证器
- 两位数的月份日期验证
- 使用angularjs验证文本框中的电子邮件
- 验证Javascript中的Textarea
- 使用regex的jquery keydown绑定不会验证撇号和句点
- 当输入name[]时,JS对复选框的验证不起作用
- 使用引导带验证时,name = submit按钮将被禁用
- 用href验证空锚,而不是用name验证空锚的正则表达式
- 是否可以将包含name的文本字段验证为objectVO.使用AngularJS