正则表达式与Ajax技术的应用详解
立即解锁
发布时间: 2025-08-19 00:28:18 订阅数: 4 


PHP, MySQL, JavaScript与CSS的综合指南
### 正则表达式与Ajax技术的应用详解
#### 1. 正则表达式在JavaScript中的应用
在JavaScript里,正则表达式主要用于两种方法:`test`和`replace`。
- **`test`方法**:该方法仅判断其参数是否与正则表达式匹配,返回`true`或`false`。例如:
```javascript
document.write(/cats/i.test("Cats are fun. I like cats."));
```
此代码会返回`true`,表明字符串中至少有一次出现了“cats”这个单词。
- **`replace`方法**:`replace`方法除了正则表达式外,还需要第二个参数,即用于替换匹配文本的字符串。它会生成一个新的字符串作为返回值,不会改变原始输入。例如:
```javascript
document.write("Cats are fun. I like cats.".replace(/cats/gi,"dogs"));
```
这里的搜索是全局的(`/g`)且不区分大小写(`/i`),会将字符串中所有的“cats”替换为“dogs”。不过,`replace`方法存在一个局限性,它会精确地用指定字符串进行替换,所以第一个“Cats”会被替换成“dogs”,而不是“Dogs”。
#### 2. 正则表达式在PHP中的应用
在PHP中,常用的正则表达式函数有`preg_match`、`preg_match_all`和`preg_replace`。
- **`preg_match`函数**:用于测试字符串中是否存在匹配的文本。例如:
```php
$n = preg_match("/cats/i", "Cats are fun. I like cats.");
```
由于PHP中用`1`表示`TRUE`,`0`表示`FALSE`,上述语句会将`$n`设为`1`。`preg_match`还可以接受第三个参数,用于显示匹配的文本:
```php
$n = preg_match("/cats/i", "Cats are fun. I like cats.", $match);
echo "$n Matches: $match[0]";
```
第三个参数`$match`是一个数组,匹配的文本会被放入`$match[0]`中。在这个例子中,输出会显示匹配的文本是大写的“Cats”。
- **`preg_match_all`函数**:若要找出所有匹配项,可使用`preg_match_all`函数。例如:
```php
$n = preg_match_all("/cats/i", "Cats are fun. I like cats.", $match);
echo "$n Matches: ";
for ($j=0 ; $j < $n ; ++$j) echo $match[0][$j]." ";
```
这里`$match[0]`会被赋值为一个包含所有匹配项的子数组,通过`for`循环可以遍历显示这些匹配项。
- **`preg_replace`函数**:用于替换字符串中的部分文本。例如:
```php
echo preg_replace("/cats/i", "dogs", "Cats are fun. I like cats.");
```
此代码会将字符串中所有不区分大小写的“cats”替换为“dogs”。
#### 3. PHP验证后重新显示表单
之前创建了HTML文档`validate.html`,它会将数据提交到PHP程序`adduser.php`,前提是JavaScript验证通过,或者JavaScript被禁用或不可用。现在需要创建`adduser.php`来接收提交的表单,进行自身验证,若验证失败则重新向访问者显示表单。以下是`adduser.php`的代码:
```php
<?php // adduser.php
// Start with the PHP code
$forename = $surname = $username = $password = $age = $email = "";
if (isset($_POST['forename']))
$forename = fix_string($_POST['forename']);
if (isset($_POST['surname']))
$surname = fix_string($_POST['surname']);
if (isset($_POST['username']))
$username = fix_string($_POST['username']);
if (isset($_POST['password']))
$password = fix_string($_POST['password']);
if (isset($_POST['age']))
$age = fix_string($_POST['age']);
if (isset($_POST['email']))
$email = fix_string($_POST['email']);
$fail = validate_forename($forename);
$fail .= validate_surname($surname);
$fail .= validate_username($username);
$fail .= validate_password($password);
$fail .= validate_age($age);
$fail .= validate_email($email);
echo "<html><head><title>An Example Form</title>";
if ($fail == "") {
echo "</head><body>Form data successfully validated: $forename,
$surname, $username, $password, $age, $email.</body></html>";
// This is where you would enter the posted fields into a database
exit;
}
// Now output the HTML and JavaScript code
echo <<<_END
<!-- The HTML section -->
<style>.signup { border: 1px solid #999999;
font: normal 14px helvetica; color:#444444; }</style>
<script type="text/javascript">
function validate(form)
{
fail = validateForename(form.forename.value)
fail += validateSurname(form.surname.value)
fail += validateUsername(form.username.value)
fail += validatePassword(form.password.value)
fail += validateAge(form.age.value)
fail += validateEmail(form.email.value)
if (fail == "") return true
else { alert(fail); return false }
}
</script></head><body>
<table class="signup" border="0" cellpadding="2"
cellspacing="5" bgcolor="#eeeeee">
<th colspan="2" align="center">Signup Form</th>
<tr><td colspan="2">Sorry, the following errors were found<br />
in your form: <p><font color=red size=1><i>$fail</i></font></p>
</td></tr>
<form method="post" action="adduser.php"
onSubmit="return validate(this)">
<tr><td>Forename</td><td><input type="text" maxlength="32"
name="forename" value="$forename" /></td>
</tr><tr><td>Surname</td><td><input type="text" maxlength="32"
name="surname" value="$surname" /></td>
</tr><tr><td>Username</td><td><input type="text" maxlength="16"
name="username" value="$username" /></td>
</tr><tr><td>Password</td><td><input type="text" maxlength="12"
name="password" value="$password" /></td>
</tr><tr><td>Age</td><td><input type="text" maxlength="3"
name="age" value="$age" /></td>
</tr><tr><td>Email</td><td><input type="text" maxlength="64"
name="email" value="$email" /></td>
</tr><tr><td colspan="2" align="center">
<input type="submit" value="Signup" /></td>
</tr></form></table>
<!-- The JavaScript section -->
<script type="text/javascript">
function validateForename(field) {
if (field == "") return "No Forename was entered.\\n"
return ""
}
function validateSurname(field) {
if (field == "") return "No Surname was entered.\\n"
return ""
}
function validateUsername(field) {
if (field == "") return "No Username was entered.\\n"
else if (field.length < 5)
return "Usernames must be at least 5 characters.\\n"
else if (/[^a-zA-Z0-9_-]/.test(field))
return "Only a-z, A-Z, 0-9, - and _ allowed in Usernames.\\n"
return ""
}
function validatePassword(field) {
if (field ==
```
0
0
复制全文
相关推荐









