JavaScript字符串操作与正则表达式应用
立即解锁
发布时间: 2025-08-20 01:27:07 阅读量: 1 订阅数: 5 


JavaScript入门与实践指南
# JavaScript字符串操作与正则表达式应用
## 1. 字符串对象方法概述
在JavaScript中,字符串对象的`split()`、`replace()`、`search()`和`match()`方法与正则表达式结合使用,能实现强大的字符串操作功能。下面将详细介绍这些方法的使用。
### 1.1 `split()`方法
`split()`方法可将字符串按指定字符或字符组拆分为数组。例如:
```javascript
var myListString = "apple, banana, peach, orange";
var myFruitArray = myListString.split(", ");
```
若字符串包含水果名称和价格,如`"apple, 0.99, banana, 0.50, peach, 0.25, orange, 0.75"`,要仅提取水果名称,可使用正则表达式:
```javascript
var myListString = "apple, 0.99, banana, 0.50, peach, 0.25, orange, 0.75";
var theRegExp = /[^a-z]+/i;
var myFruitArray = myListString.split(theRegExp);
document.write(myFruitArray.join("<br />"));
```
该正则表达式`[^a-z]+`表示匹配一个或多个非a - z的字符,`i`标志使匹配不区分大小写。
#### 操作步骤
1. 定义包含水果名称和价格的字符串`myListString`。
2. 创建正则表达式`theRegExp`,匹配非字母字符组。
3. 使用`split()`方法按正则表达式拆分字符串,结果存入`myFruitArray`。
4. 使用`join()`方法将数组元素用`<br />`连接并输出。
### 1.2 `replace()`方法
`replace()`方法能基于正则表达式匹配的组替换文本。例如,将字符串`"1999, 2000, 2001"`转换为`"the year 1999, the year 2000, the year 2001"`:
```javascript
var myString = "1999, 2000, 2001";
var myRegExp = /(\d{4})/g;
myString = myString.replace(myRegExp, "the year $1");
```
这里`$1`引用正则表达式中的第一个组。
再如,将文本中的单引号转换为双引号,需考虑单引号作为引号和撇号的不同情况:
```javascript
var myRegExp = /\B’|’\B/g;
function replaceQuote(textAreaControl) {
var myText = textAreaControl.value;
myText = myText.replace(myRegExp, '“');
textAreaControl.value = myText;
}
```
正则表达式`\B’|’\B`匹配非单词边界后的单引号或单引号后的非单词边界。
#### 操作步骤
1. 定义正则表达式,明确要匹配的模式。
2. 调用`replace()`方法,传入正则表达式和替换字符串。
3. 更新字符串或文本区域的值。
### 1.3 `search()`方法
`search()`方法用于在字符串中搜索指定模式,若找到则返回匹配位置,否则返回 -1。例如,查找字符串中独立的`Java`单词:
```javascript
var myString = "Beginning JavaScript, Beginning Java 2, Professional JavaScript";
var myRegExp = /\bJava\b/i;
alert(myString.search(myRegExp));
```
正则表达式`\bJava\b`表示匹配作为独立单词的`Java`,`i`标志使匹配不区分大小写。
#### 操作步骤
1. 定义要搜索的字符串`myString`。
2. 创建正则表达式`myRegExp`,指定搜索模式。
3. 调用`search()`方法,传入正则表达式,获取匹配位置。
### 1.4 `match()`方法
`match()`方法与`search()`类似,但返回匹配结果的数组。例如,从字符串中提取年份:
```javascript
var myString = "The years were 1999, 2000 and 2001";
var myRegExp = /\b\d{4}\b/g;
var resultsArray = myString.match(myRegExp);
if (resultsArray) {
var indexCounter;
for (indexCounter = 0; indexCounter < resultsArray.length; indexCounter++) {
alert(resultsArray[indexCounter]);
}
}
```
正则表达式`\b\d{4}\b`匹配单词边界内的四位数字,`g`标志表示全局匹配。
#### 操作步骤
1. 定义包含目标信息的字符串`myString`。
2. 创建正则表达式`myRegExp`,指定匹配模式。
3. 调用`match()`方法,传入正则表达式,获取匹配结果数组。
4. 遍历数组,处理匹配结果。
### 1.5 拆分HTML字符串示例
以下示例将HTML字符串拆分为组件部分:
```html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>example 6</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/JavaScript">
function button1_onclick() {
var myString = "<table align=center><tr><td>"
```
0
0
复制全文
相关推荐










