将JS字符串中引用的GUID的一个或多个实例替换为未引用的版本
Replace 1 or more instances of quoted GUIDs in JS string with unquoted versions
问题
我有一个字符串(在JavaScript中(,它可能包含也可能不包含位于不同位置的一个或多个GUID。这些GUID用单引号括起来。我需要去掉引号。
到目前为止我拥有的东西
Regex将GUID与单引号匹配:
var guid = /('[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}')/ig;
替换所有单引号和双引号的方法:
myString = myString.replace(/["']/g, ""); // I actually don't need the double quote here...
但我不知道如何将匹配的GUID的每个实例替换为带有相同GUID的单引号而不带引号。。。同时仍保留字符串中的任何其他单引号。
我想我可能需要得到所有的比赛,循环浏览每一场比赛,然后进行替换。。在伪代码中:
var matches = myString.matches(guid);
foreach (var match in matches)
{
myString = myString.replace(match.value, match.value.replace("'", ""));
}
有人能在jQuery或plain JS中给我以上内容吗?此外,如果有一种更简单的方法,那就更好了。
你非常接近。更改正则表达式以包含一个不包含'
的捕获组:
var guid = /'([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})'/ig;
// Change ^^------------------------------------------------------------^^
然后:
str = str.replace(guid, "$1");
CCD_ 2=第一捕获组。由于正则表达式上的g
,它将替换字符串中出现的所有内容。
实时示例:
var guid = /'([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})'/ig;
var str = "Testing '00b3dada-88d7-482a-b082-039cc7153023' and '30378f4e-889c-4a9a-854c-daa304969246' and '413db223-7c02-4f95-a994-8aaaad48a245'";
snippet.log("Before: " + str);
str = str.replace(guid, "$1");
snippet.log("After: " + str);
<!-- Script provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 -->
<script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>
相关文章:
- 如何在angularJS中获得对指令对象实例的引用
- 如何将一个单例传递给另一个对象,使该对象的所有实例都引用同一个单实例
- 对象引用未设置为行中的对象的实例,如果 (!string.IsNullOrEmpty(tdcd.文本)&&
- 使用下划线 js map 函数时,Mongo 引用字段未实例化
- 作用域变量正在创建引用而不是新实例
- 如何动态引用 jQuery 插件实例
- 为什么这会编译对类而不是实例的引用
- 存储对通讯簿应用的实例化对象的引用
- 对象引用未设置为 C# 中的对象实例
- Array.prototype.fill() 带有对象传递引用而不是新实例
- 主干混合引用实例
- 对象引用未设置为Internet Explorer上的AngularJS中的对象的实例
- 在JS对象实例中引用Ajax加载的元素
- System.NullReferenceException:对象引用未设置为对象的实例.Dotnetnuke模块创建
- Javascript中的实例与引用与对象
- 对象实例上的引用-React
- ES6类方法是在内部引用类实例的最有效方法
- 引用实例为'this'在原型对象分配中
- 循环引用实例化
- Javascript-引用实例化的对象