Secrets of JavaScript function replace

高洛峰
Release: 2016-11-28 15:58:43
Original
1131 people have browsed it

The replace function in JavaScript is used as a string replacement function. This is a powerful string operation function and is a recommended usage for common string operations. This essay will provide a more in-depth understanding of it.
The replace function accepts two parameters. The first parameter is a string or a regular expression. The first parameter can also accept a string or a function.数 First of all, we no longer need to say more about "I am a Boy" .replace ("Boy", "Girl"), output: "I am a Girl". What I want to talk about here is the case where the first parameter is regular. For regular expressions, the replacement behavior will first be determined based on whether it is global (global//g). If it is all, all will be replaced. If it is non-global, only the first matching string will be replaced. For example:



"Ha Ha".replace(/bw+b/g, "He") // He He

"Ha Ha".replace(/bw+b/, "He") //He Ha

1: The second parameter is a string:

There is a special marker $ for regular replacement:
1. $i (i:1-99): represents a left-to-right regular subexpression The text that matched.
2. $
3. $`(`:Switch skill key): Represents the left text of the matching string. (4. $ '(‘: Single quotes): The right text on the right side of the matching string.
5. $$: means $ transfer.
Here are some demos:



"boy & girl".replace(/(w+)s*&s*(w+)/g,"$2 & $1") //girl & boy

"boy ".replace(/w+/g,"$&-$&") // boy-boy

"javascript".replace(/script/,"$& != $`") //javascript != java

"javascript".replace(/java/,"$&$' is ") // javascript is script

2: The second parameter is a function:

It is recommended to use the function method in ECMAScript3, implemented in JavaScript1 .2. When the replace method is executed, this function will be called every time, and the return value will be used as the new value of the replacement.

Function parameter regulations:
1. The first parameter is the full text of each match ($&).
2. The middle parameter is the subexpression matching string, the number is not limited. ($i (i:1-99))
3. The penultimate parameter is the matching subscript position of the matching text string.
4. The last parameter represents the string itself.
This is what this article is going to say about the power of replace. The theoretical stuff is all dry stuff. We need examples to solve all empty problems:
1: Capitalize the first letter of a string:


String.prototype.capitalize = function(){ return this.replace( /(^|\s)([a-z])/g , function(m,p1,p2){ return p1+p2.toUpperCase(); } ); };
Copy after login

,

console.log(" i am a boy !".capitalize())

Output: I Am A Boy !

2: Score extraction for the string "Zhang San 56 points, Li Si 74 points, Wang Wu 92 points, Zhao Liu 84 points" Summarize, calculate the average score and output the average score difference for each person.




var s = "Zhang San 56 points, Li Si 74 points, Wang Wu 92 points, Zhao Liu 84 points";

var a = s.match(/\d+/g); var sum = 0; for(var i = 0 ; i < a.length; i++){ sum += parseFloat(a[i]); } var avg = sum / a.length; function f(){ var n = parseFloat(arguments[1]); return n + "分" + "(" + ((n > avg) ? ("超出平均分" + (n - avg)) : ("低于平均分" + (avg - n))) + "分)"; } var result = s.replace(/(\d+)分/g, f); console.log(result);
Copy after login

Output:

Zhang San 56 points (20.5 points lower than the average) ), Li Si scored 74 points (2.5 points below the average), Wang Wu scored 92 points (15.5 points above the average), Zhao Liu scored 84 points (7.5 points above the average)


After adding advanced regular applications, JavaScript replace will return the greater power, and we will no longer go into advanced regular application assertions and the like here.

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!