bob体育官方平台
bob体育官方平台Javascript 正则表达式使用变量

我在js里面写了一个去除首尾空格及特定字符的函数。代码如下:

例1.trim函数删除空格

文章来给大家介绍在Javascript 正则表达式使用变量时一些问题与解决方法,主要讲到的替换与RegExp两种方式

复制代码 代码如下:function trim { return str.replace(new RegExp('^[\s'+charlist+']+|[\s'+charlist+']+$', 'g'), '');}

trim()函数用于去除字符串开始位置以及结束位置的空格,并返回去掉空格后的字符串。语法如下:
string trim(string str[,string charlist]);
ltrim()函数用于去除字符串左边的空格或指定字符串。语法如下:
string ltrim(string str[,string charlist]);
rtrim()函数用于去除字符串右边的空格和特殊字符。语法如下:
string rtrim(string str[,string charlist]);

例1,replace带有变量

代码看上去没有什么问题,运行起来也没有错误。

 代码如下

replace函数可以使用正则表达式来匹配字符串实现替换。

直到今天,我在搜索栏里搜索“note3”的时候,才发现,地址栏里搜索的内容变成了“ote3”,而其他字母或者是数字开头则是正常的,搜索什么,地址栏里的内容就是什么。

<?php
 
$a="(a,b,c,)";
echo $a."<br/>"; //输出:(a,b,c,)
$b=trim($a,"()"); //去除字符串首尾含有的字符“(”或“)”
echo $b."<br/>"; //输出:a,b,c,
$c=trim($a,"(,)"); //去除字符串首尾含有的字符“(”、“,”或“)”
echo $c."<br/>"; //输出:a,b,c
 
?>

今天遇到的问题是正则表达式出现了变量,以今天的实际情况为例:

调试过代码之后,将代码改为:

 
输出结果:
(a,b,c,)
a,b,c,
a,b,c
在sql中函数trim()用途为去除首尾空格,ltrim()为去除字符串左侧空格,rtrim()为去除字符串右侧空格。

 代码如下

复制代码 代码如下:function trim { var charlist = charlist || ""; return str.replace(new RegExp('^[\s'+charlist+']+|[\s'+charlist+']+$', 'g'), '');}

 

复制代码

在函数中增加了对charlist的初始化。在次搜索“note3”,结果正确。

例2.利用str_replace正则替换

/(^'+arr2[i]+'|)|(|'+arr2[i]+'$)/

虽然js是弱类型语言,使用变量并不要求一定要初始化,运行的时候,代码会自动转换并赋值。但是这样做会引起一些意想不到的问题,因此,对所有使用到的变量进行初始化,是非常有必要的。

 代码如下

arr2[i]为数组元素,是变量

今天就先到这里了,希望小伙伴们能够喜欢。

function  mbTrim($str) 

        return mb_ereg_replace('(^( | )+|( | )+$)', '', $str); 

str=str.replace(/(^'+arr2[i]+'|)|(|'+arr2[i]+'$)/,'');

例3.str_replace正则替换

使用这种方式无法替换成功,解决办法:

 代码如下

 代码如下

<?
$str="      www.111cn.net     ";
$str = mb_ereg_replace('^( | )+', '', $str);
$str = mb_ereg_replace('( | )+$', '', $str);
echo mb_ereg_replace('  ', "n  ", $str);
?>

复制代码

var reg=eval_r('/(^'+arr2[i]+'|)|(|'+arr2[i]+'$)/');
str=str.replace(reg,'');

如果是直接变量我们单独替换可以如下操作

 代码如下

复制代码

var match_str = 'bitch';
var regex = "/," + match_str + ",/ig";
var target_str = ",abcde,bitch,fghij,";
var val = target_str.replace(eval(regex),",");
alert(val);

返回顶部