javascript - 如何获取字符串中美元符号之间的值?

标签 javascript jquery regex

我正在尝试获取字符串中美元符号之间的值并将它们放入列表中。

例如,这是一个字符串:

var a ='Dear $name$, This is my number $number$. This is my address $address$ Thank you!'

而我想要得到的是,

var b = '$name$,$number$,$address$'

由于 $ 也在 jQuery 中使用,我是否需要注意字符串中的“$”?你有什么想法吗?

最佳答案

使用匹配:

a.match(/\$.*?\$/g);

这将返回一个包含所有值的数组。您还可以使用

a.match(/\$.*?\$/g)||[];

确保你总是得到一个数组,因为如果没有匹配,你将得到 null 对象,这并不总是有用的。

正则表达式也在 answer of mine 中进行了解释。对于类似的问题:匹配任何内容 (.),任意次数 (*),尽可能少的次数 (?)。

然后您可以使用join 将该数组连接成一个字符串:

(a.match(/\$.*?\$/g)||[]).join(',');

代码:

var a='Dear $name$, This is my number $number$. This is my address $address$ Thank you!';
var b=(a.match(/\$.*?\$/g)||[]).join(',');

输出:

"$name$,$number$,$address$"

实际上,在这种情况下,正则表达式匹配每个 $,然后是下一个 $ 之前的任何内容,最后是末尾的美元符号。如果您在末尾指定 g(全局)标志,match 将给出结果列表。

因为这是一个字符串(以及上面的正则表达式)文字,所以不会干扰 jQuery 的 $ 符号。唯一重要的是用反斜杠 (\$) 转义该符号,因为它在 RegExp 中具有特殊含义。

关于javascript - 如何获取字符串中美元符号之间的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29681763/

相关文章:

python - 正则表达式从字符串中提取用户名/名称

javascript - 未捕获的类型错误 : . slideToggle 不是函数

javascript - JavaScript 接收请求失败错误

Javascript 删除 object.property 不工作

Javascript选择内容时用div包裹它

jquery 最后聚焦的元素

javascript - 使用 ajaxSend 检测正在调用的 jquery ajax 方法

jQuery 可排序

JavaScript REGEX 模式匹配

regex - 在 Vi - 正则表达式中搜索和替换 "(" ""和 "["