一、
repalce定义
用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。
1
2
3
4
5
|
stringObject.replace(regexp/substr,replacement);
参数一:必需,规定的字符串或者正则表达式
参数二:必需,一个字符串值。规定了替换文本或生成替换文本的函数。
!!!replacement 中的 $ 字符具有特定的含义。详情见W3C
|
二、有$1,$2...的例子
1
2
3
4
5
|
//把 "Doe, John" 转换为 "John Doe" 的形式:
var
str =
"Doe, John"
;
str.replace(/(\w+)\s*, \s*(\w+)/,
"$2 $1"
);
说明:$1,$2上就是按顺序对应小括号里面的小正则 捕获到的内容。
|
三,第二个参数是函数
1
2
3
4
5
6
7
8
9
10
11
12
|
把字符串中所有单词的首字母都转换为大写:
var
str =
'aaa bbb ccc'
;
uw=str.replace(/\b\w+\b/g,
function
(word){
return
word.substring(0,1).toUpperCase()+word.substring(1);}
);
说明:匹配一次就执行一次函数,匹配的内容作为参数
//把数字转成对应的汉子
var
ary=[
"一"
,
"二"
,
"三"
,
"四"
,
"五"
,
"六"
]
"123456"
.replace(/\d/g,
function
(val){
return
ary[val-1]
})
|
四、一个栗子,实现模板字符替换
1
2
3
4
5
6
|
var
obj = {
name:
'leaf'
,
age:20
}
var
str =
"我是{
{name}},name是我的名字,我今年{
{age}}岁"
;
//最终替换成"我是leaf,name是我的名字,我今年20岁"
|
1
2
3
|
function
render(template, context) {
return
template.replace(/\{\{(.*?)\}\}/g, (match, key) => context[key.trim()]);
}
|
1、.*? 非贪婪匹配模式
2、每个匹配的这则组合执行一次函数
五、其他常用正则替换
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
//去除空格
String.prototype.Trim = function() {
return
this
.replace(/\s+/g,
""
);
}
//去除换行
function ClearBr(key) {
key = key.replace(/<\/?.+?>/g,
""
);
key = key.replace(/[\r\n]/g,
""
);
return
key;
}
//去除左侧空格
function LTrim(str) {
return
str.replace(/^\s*/g,
""
);
}
//去右空格
function RTrim(str) {
return
str.replace(/\s*$/g,
""
);
}
//去掉字符串两端的空格
function trim(str) {
return
str.replace(/(^\s*)|(\s*$)/g,
""
);
}
//去除字符串中间空格
function CTim(str) {
return
str.replace(/\s/g,
''
);
}
//是否为由数字组成的字符串
function is_digitals(str) {
var
reg=/^[0-9]*$/;
//匹配整数
return
reg.test(str);
}
|
//单词首字母大写
function uppperCase(str) {
return str.toLowerCase().replace(/( |^)[a-z]/g, (L) => L.toUpperCase());
正则匹配url:
/^https?:\/\/(([a-zA-Z0-9_-])+(\.)?)*(:\d+)?(\/((\.)?(\?)?=?&?[a-zA-Z0-9_-](\?)?)*)*$/i
(https?|ftp|file)://[-A-Za-z0-9+&@#/%?=~_|!:,.;]+[-A-Za-z0-9+&@#/%=~_|]
If you are using Qt5 then use QRegularExpression instead of QRegExp
instead of $1
you should use \1
(escaped so \\1
)
一、repalce定义用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。 1 2 3 4 5 stringObject.replace(regexp/substr,replacement); 参数一:必需,规定的字符串或者正则表达式 参数二:必需,一个字符串值。规定了替换文本或生成替换文本的函数。 !!!replacement 中的 $ 字符具有特定的含义。详情见W3C .
$1、$2表达的是正则表达式中小括号(即分组)中的内容,$1是第一个小括号(分组)中的匹配结果,$2是第二个小括号(分组)中的匹配结果,以此类推。通常$1、$2用在替换操作中。如下:
其中文本是123-456-789,而正则表达式是(\d+)-(\d+)-(\d+),可以看到正则表达式中有3对小括号(即分组),第一个分组匹配的是123,第二个分组匹配的是456,第三个分组匹配的是789,而在替换区中的$3-$1-$2中的$1就是第一个分组中的内容123、$2是第二个分组中内容456、$3是第三个分组内容78
JavaScript正则实战(会根据最近写的不断更新)
1、javascript 正则对象替换创建 和用法: /pattern/flags 先简单案例学习认识下replace能干什么
正则表达式构造函数: new RegExp(“pattern”[,”flags”]);
正则表达式替换变量函数:stringObj.replace(RegExp,replace Text);
参数说明:
pattern — 一个正则表达式文本
flags — 如果存在,将是以下值:
g: 全局匹配
i: 忽略大小写
gi: 以上组合
//下面的例子用来获取url的两个参数,并返回urlRewrite之
var subStr=new RegExp('is');//创建正则表达式对象
var result=str.replace(subStr,"");//把'is'替换为空字符串
console.log(re...
function chDate1date(str){
var reg =/(\d{4})\-(\d{2})\-(\d{2})/;
return str.replace(reg,"$1年$2月$3日")
chDate1date...
JavaScript中的正则表达式是一种特殊的文本字符串,用于验证和匹配其他字符串。正则表达式在字符串操作中经常被用来进行文本搜索和替换。
在JavaScript中,用于进行正则表达式操作的函数是replace()方法。replace()方法可以接受两个参数:第一个参数是正则表达式,第二个参数是替换字符串。这个方法首先搜索匹配正则表达式的字符串,然后用替换字符串替换它。
示例代码如下:
let str = "I love JavaScript!";
let newStr = str.replace(/JavaScript/, "Python");
console.log(newStr); //输出"I love Python!"
在这个例子中,我们使用replace()方法将字符串中的"JavaScript"替换为"Python"。
如果想要使用replace()方法替换所有匹配的字符串,可以使用正则表达式的全局标志"g",例如:
let str = "To be, or not to be, that is the question.";
let newStr = str.replace(/be/g, "z");
console.log(newStr); //输出"To z, or not to z, that is the question."
在上面的例子中,我们使用了正则表达式的全局标志"g",将字符串中所有的"be"替换为"z"。
除了使用字符串作为替换值,replace()方法还可以接受一个函数作为第二个参数,用于动态生成替换值。这个函数会接收到一个匹配字符串作为参数,并且返回一个新的字符串作为替换值。例如:
let str = "I have 3 apples and 2 oranges.";
let newStr = str.replace(/\d+/g, function(match) {
return parseInt(match) + 1;
console.log(newStr); //输出"I have 4 apples and 3 oranges."
在上面的例子中,我们使用正则表达式匹配字符串中的数字,并将它们加1后作为新的替换值返回。
爱和九九:
UHD C/C++ 编程实例 USRP发送、接收数据
爱和九九:
UHD C/C++ 编程实例 USRP发送、接收数据
coco小虾米:
VL6180X距离、光线传感器上手体验
weixin_52263305: