jQuery - 查找并替换子字符串
jQuery - find and replace substring
假设我有这样的字符串
'Hello, I am ***Groot*** today.'
'This is ***not*** my final form.'
'Test test ***123***'
我想在第一个星号之前和第二个星号之后添加一些新东西,使其看起来像
'Hello, I am FIRST***Groot***LAST today.'
'This is FIRST***not***LAST my final form.'
'Test test FIRST***123***LAST'
到目前为止,我设法得到了这个
var first = jQuery(this).html().indexOf("***");
var last = jQuery(this).html().lastIndexOf("***");
console.log( jQuery(this).html().substring(first, last+3) );
但我在更换时失败了...那么近,却又那么远。
你可以很容易地使用正则表达式...这将适用于所有字符串。
JSFiddle (check js console)
var str = jQuery(this).text();
str = str.replace(/('*{3}.*'*{3})/, "FIRST$1LAST");
console.log(str);
此外,您实际上不需要创建jQuery对象只是为了获取文本,可以这样做:
var str = this.innerText;
str = str.replace(/'*{3}.*'*{3}/, "FIRST$&LAST");
console.log(str);
我相信替换参数中正确的特殊替换字符应该$&
,而不是仅仅为了可读性和最佳实践而$1
。
$&
对应于匹配的子字符串,而$1
使 RegExp 对象中有多个匹配项。
参考此处: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace
相关文章:
- 字符串替换-不支持格式字符'}'
- Unicode字符串替换不适用于完整的变音符号阿拉伯文本
- Javascript 将字符串替换为
返回为空 - 字符串替换只替换第一个匹配项,可以'不要让它全球化
- javascript字符串替换$1(如果它是某个值)
- 字符串替换正则表达式,开头为空格
- 将 url 中的一个字符串替换为另一个字符串
- 在HTML文本框中查找某些子字符串,然后用其他字符串替换它们
- 我想使用replace函数扫描json对象,然后用字符串替换匹配的单词
- 字符串替换为从右向左的语言(阿拉伯语)
- 将字符串替换为用户键入的文本
- 字符串替换javascript
- JavaScript 将多行字符串替换为多行字符串
- Javascript字符串替换不起作用
- 字符串替换不'当通过android webView JavascriptInterface传递字符串时无法工作
- 我正在尝试用另一个字符串替换一个字符串
- 字符串替换最后一个字符出现的斜杠
- 将具有的字符串替换为$
- 基于查询字符串替换HTML
- Javascript字符串替换在满足长度而不是instantanoeus之前不会生效