当前位置: 代码迷 >> 综合 >> 回顾js:正则相关方法,prop()与attr()
  详细解决方案

回顾js:正则相关方法,prop()与attr()

热度:91   发布时间:2023-12-06 06:54:47.0

文章目录

    • prop()方法与attr()方法回顾
    • 正则表达式相关内容

prop()方法与attr()方法回顾

一.prop()方法

  • 语法:
$(selector).prop(property)
  • prop() 方法设置或返回被选元素的属性和值。
    eg:
  $(document).ready(function(){//全选$("#checkAll").click(function(){$("[name=checkItem]:checkbox").prop("checked",true);});//全不选$("#noCheckAll").click(function(){$("[name=checkItem]:checkbox").prop("checked",false);});});
  • 当该方法用于返回属性值时,则返回第一个匹配元素的值。当该方法用于设置属性值时,则为匹配元素集合设置一个或多个属性/值对。
  • prop() 方法应该用于检索属性值,例如 DOM 属性(如 selectedIndex, tagName, nodeName, nodeType, ownerDocument, defaultChecked, 和 defaultSelected)。
  • 如需移除属性,请使用 removeProp() 方法。

原则使用:

  • 只添加属性名称该属性就会生效应该使用 prop()
  • 只存在 true/false 的属性应该使用 prop()

二.attr()方法
三种用法

<p title="你最喜欢的水果是。">你最喜欢的水果是?</p>
<ul><li title="苹果汁">苹果</li><li title="橘子汁" value="123">橘子</li><li title="菠萝汁">菠萝</li>
</ul>

1、获取属性的值 attr(value),可以获得属性值

<script>
alert($("ul li:eq(1)").attr("title"));
</script>

结果:获取的为第一个:“苹果汁”

2、改变属性值attr(name,value)name的值改变成value

<script>
$("ul li:eq(0).attr("title","不吃香蕉")
</script>

补充说明eq() 方法将匹配元素集缩减值指定 index 上的一个
语法:

.eq(index)
index - 可正可负
<ul><li>list item 1</li><li>list item 2</li><li>list item 3</li><li>list item 4</li><li>list item 5</li>
</ul>
?
<script>$('li').eq(-2).css('background-color', 'red');</script>

结果显示:
在这里插入图片描述
详见 jQuery遍历参考手册

3、函数使用attr(attribute,function(index,oldvalue))
注意:attr()用于检索HTML属性

<script>
$("ul li:eq(1)").attr("title",function(){ return this.alt});
alert($("ul li:eq(1)").attr("title"));
</script>

4、 也可为其设置 classNameidstyle等或者使用removeAttr移除

<script>
$("ul li:eq(1)").attr({className:"lili"});
$("ul li:eq(1)").attr({style:"color:red"});
$("ul li:eq(1)").removeAttr ("title");
</script>

正则表达式相关内容

  • 在代码中常简写为regex、regexpRE
  • 语法:

/正则表达式主体/修饰符(可选)

var patt = /baidu/i
var patt=new RegExp(pattern,modifiers);

i - 修饰符是用来执行不区分大小写的匹配。
g - 修饰符是用于执行全文的搜索(而不是在找到第一个就停止查找,而是找到所有的匹配)。

具体见:RegExp 对象

  • ****exec()****检索字符串
  1. exec() 方法用于检索字符串中的正则表达式的匹配,如果 exec() 找到了匹配的文本,则返回一个结果数组。否则,返回 null

语法:RegExpObject.exec(string)
string-要检索的字符串

2.检索实例:

var str = "Visit W3School, W3School is a place to study web technology."; 
var patt = new RegExp("W3School","g");
var result;while ((result = patt.exec(str)) != null)  {document.write(result);document.write("<br />");document.write(patt.lastIndex);document.write("<br />");}

/e/.exec("The best things in life are free!");
这个是搜索字符串中的字母 “e”:字符串中含有 “e”,所以该实例输出为:e

返回结果展示:
在这里插入图片描述

***search()***

search() 方法用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串。显示查找的位置,如果没有找到任何匹配的子串,则返回 -1且search() 方法不执行全局匹配,它将忽略标志 g。它同时忽略 regexplastIndex 属性,并且总是从字符串的开始进行检索,这意味着它总是返回 stringObject 的第一个匹配的位置。

实例:

 检索字符串中 "Runoob" 的子串:var str = "Visit Runoob!"; 
var n = str.search("Runoob");输出结果为:6忽略大小写:
var str="Mr. Blue has a blue house";
document.write(str.search(/blue/i));
  • ***replace()***方法:查找并替换

语法:

1.stringObject.replace(regexp/substr,replacement)
如果 regexp 具有全局标志 g,那么 replace() 方法将替换所有匹配的子串,否则,它只替换第一个匹配子串。
例如:
document.write(str.replace(/Microsoft/g, "W3School"))

regexp/substr -规定子字符串或要替换的模式的 RegExp 对象。
replacement - 一个字符串值。规定了替换文本或生成替换文本的函数。

replacement 中的 $ 字符具有特定的含义。如下表所示,它说明从模式匹配得到的字符串将用于替换。
在这里插入图片描述
详见 replacement解析

  相关解决方案