> 웹 프론트엔드 > JS 튜토리얼 > Javascript의 replacement() 메소드 사용 예

Javascript의 replacement() 메소드 사용 예

黄舟
풀어 주다: 2017-11-23 09:38:27
원래의
1647명이 탐색했습니다.

일상적인 개발에서 javascript의 바꾸기 메소드는 String 개체에 속하며 strings를 바꾸는 데 사용할 수 있습니다. 바꾸기는 정규 표현식에서도 사용할 수 있으므로 오늘은 Javascript 사용 예에 ​​대해 자세히 설명하겠습니다. 교체() 메소드가 있습니다!

정의 정보

replacement() 메서드는 문자열의 일부 문자를 다른 문자로 바꾸거나 정규식과 일치하는 하위 문자열을 바꾸는 데 사용됩니다.

구문 정보

stringObject.replace(regexp/substr,replacement)
로그인 후 복사

매개 변수 정보

ParametersDescription

regexp/sub str

필수입니다. 대체할 하위 문자열이나 패턴을 지정하는 RegExp 개체입니다.

값이 문자열인 경우 먼저 RegExp 개체로 변환되지 않고 리터럴 리터럴 패턴으로 검색됩니다.

교체필수입니다. 문자열 값. 텍스트를 바꾸거나 대체 텍스트를 생성하는 기능을 지정합니다.





1 정규식을 사용할 때 첫 번째 매개변수 regexp/substr은 일치하는 모든 하위 문자열을 대체할 수 있는 전역 식별자 g를 사용합니다. 한 번.

예:

var str = "aaaaa"; 
var str1 = str.replace("a", "b");
var str2 = str.replace(/a/g, "b");
로그인 후 복사

실행 결과: str1 -> "baaaa", str2 -> "bbbbb"

2 $ 문자를 의미합니다.

Characters대체 텍스트
$1, $2, ..., $99정규 표현식의 1~99번째 하위 표현식과 일치하는 텍스트입니다.
$&정규 표현식과 일치하는 하위 문자열입니다.
$`일치하는 하위 문자열 왼쪽에 있는 텍스트입니다.
$'일치하는 하위 문자열 오른쪽에 있는 텍스트입니다.
$$직접 수량 기호.






a. function的例子:

var str = "111222aa";
str.replace(/(\d{3})/g, function(word){
 return "b";
});
로그인 후 복사

运行结果: "bbaa"

b. $的例子

var str = "1234567890";
str.replace( /(\d{3})(\d{3})(\d{4})/g, "$1-$2-$3" );
로그인 후 복사

运行结果: "123-456-7890"

注: 大多时候是利用regexp和$的结合来实现需求,所以知道一些基本的正则表达式规则是有必要的。

字符串替换字符串

'I am loser!'.replace('loser','hero')
로그인 후 복사

//I am hero!
直接使用字符串能让自己从loser变成hero,但是如果有2个loser就不能一起变成hero了。

'I am loser,You are loser'.replace('loser','hero');
//I am hero,You are loser
로그인 후 복사

正则表达式替换为字符串

'I am loser,You are loser'.replace(/loser/g,'hero')
//I am hero,You are hero
로그인 후 복사

使用正则表达式,并将正则的global属性改为true则可以让所有loser都变为hero

有趣的替换字符

replaceValue可以是字符串。如果字符串中有几个特定字符的话,会被转换为特定字符串。

字符 替换文本
$& 与正则相匹配的字符串
$` 匹配字符串左边的字符
$' 匹配字符串右边的字符
$1,$2,$,3,…,$n 匹配结果中对应的分组匹配结果
使用$&字符给匹配字符加大括号

var sStr='讨论一下正则表达式中的replace的用法';
sStr.replace(/正则表达式/,'{$&}');
//讨论一下{正则表达式}中的replace的用法
使用$`和$'字符替换内容

'abc'.replace(/b/,"$`");
//aac
'abc'.replace(/b/,"$'");
//acc
로그인 후 복사

使用分组匹配组合新的字符串

'nimojs@126.com'.replace(/(.+)(@)(.*)/,"$2$1")
//@nimojs
replaceValue参数可以是一个函数
로그인 후 복사

StringObject.replace(searchValue,replaceValue)中的replaceValue可以是一个函数.
如果replaceValue是一个函数的话那么,这个函数的arguments会有n+3个参数(n为正则匹配到的次数)

先看例子帮助理解:

function logArguments(){ 
 console.log(arguments);
//["nimojs@126.com", "nimojs", "@", "126.com", 0, "nimojs@126.com"] 
 return '返回值会替换掉匹配到的目标'
}
console.log(
 'nimojs@126.com'.replace(/(.+)(@)(.*)/,logArguments)
)
로그인 후 복사

参数分别为

匹配到的字符串(此例为nimojs@126.com,推荐修改上面代码的正则来查看匹配到的字符帮助理解)
如果正则使用了分组匹配就为多个否则无此参数。(此例的参数就分别为”nimojs”, “@”, “126.com”。推荐修改正则为/nimo/查看控制台中返回的arguments值)
匹配字符串的对应索引位置(此例为0)
原始字符串(此例为nimojs@126.com)
使用自定义函数将A-G字符串改为小写

'JAVASCRIPT'.replace(/[A-G]/g,function(){
 return arguments[0].toLowerCase();
})
//JaVaScRIPT
로그인 후 복사

使用自定义函数做回调式替换将行内样式中的单引号删除

&#39;<span style="font-family:\&#39;微软雅黑\&#39;;">demo</span>&#39;.replace(/\&#39;[^&#39;]+\&#39;/g,function(){  
 var sResult=arguments[0];
 console.log(sResult);//&#39;微软雅黑&#39;
 sResult=sResult.replace(/\&#39;/g,&#39;&#39;);
 console.log(sResult);
//微软雅黑
 return sResult;
})
//<span style="font-family:微软雅黑;">demo</span>
로그인 후 복사

总结:

相信小伙伴们通过对本文的学习和了解,对Javascript中replace()方法的使用有了进一步的了解,希望对你的工作有所帮助!

相关推荐:

JavaScript正则方法replace实现搜索关键字高亮显示

js中replace()赋值时的用法

js学习正则之replace的实例详解

위 내용은 Javascript의 replacement() 메소드 사용 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿