Javascript 字符串匹配

标签 javascript regex string-matching

这是我目前所得到的:

var source = '>R$11111</b>';
var price = source.match(/[^R$]\d+/);

“来源”有点像 innerHTML 插入,但我已经记下了。

问题是“价格”必须介于 'R$' 之间和 '</b>' ,无论它们之间是什么,从 1 到无穷大。我在那里得到的东西会起作用,但是当我取出 'R$' 时或 '</b>'从中,它仍然可以找到值和一个额外的字符。

所以基本上我只需要帮助来制作它所以它只会获取 'R$' 之间的值和 '</b>'当两者都存在时。

***OR 从 R$ 到字符串的末尾。但 R$ 和价格之间没有空格。

最佳答案

嗯,[^R$] 匹配“恰好一个既不是 R 也不是 $ 的字符”,所以这可能不是你想要什么。

var price = source.match(/R\$(\d+)/)[1];

或者如果价格可能不是全数字:

var price = source.match(/R\$(.*?)<\/b>/)[1];

重要的是你关心的部分周围的括号,这会导致匹配括号之间内容的任何文本作为数组的第二个元素包含在匹配的返回值中(第一个是匹配整个正则表达式的文本)。

如果字符串可能与正则表达式不匹配,那么最好分两步进行:

var match = source.match(/whichever/);
if (match) {
    price = match[1]; 
} else {
    console.log("no price found.");
}

关于Javascript 字符串匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10747570/

相关文章:

regex - 正则表达式中的空格

r - R中字符串的聚类序列

c# - 从 MemoryStream 获取子字符串而不将整个流转换为字符串

javascript - Lightbox jQuery 与下拉菜单冲突

javascript - 是否有可能采用 FEN aka forsyth-edward 符号并将其从黑色翻转为 play and win to white

java - REGEX 匹配多个条件

c - 逐词短语匹配

javascript 密码输入验证启动模式

javascript - 如何获取以子字符串开头的所有 elementID

python - 查找一个系列在另一个系列中的匹配项,并使用正则表达式匹配打印整行数据帧