Javascript Regex-从价格中抓取分隔符
Javascript Regex - grab delimiter from price
考虑这四种不同的价格:
3 900,38 zł
1900,00€
100000美元/年
编号9 853,05
我想从这些字符串中获取所有分隔符。根据语言的不同,分隔符可以是逗号、句点或空格(请参阅抛光)。基本上,当出现在两位数字之间时,我需要匹配其中一个[''s,''.](我不想匹配作为货币符号格式的一部分出现的空白)。
这是我的正则表达式:
/(?:'d(['s,'.])'d)/g
问题是匹配总是包括分隔符两侧的数字。有没有办法在没有数字的情况下返回匹配项?我很困惑,既然数字属于非捕获组,为什么它们会首先返回。
注意:我已经有了替代的解决方案,但这个问题实际上是在问,尽管javascript缺乏前瞻性,但这是否可以用一个regex来实现。谢谢*
这是我的电笔:http://codepen.io/nhmaggiej/pen/LEabZY
谢谢!
我认为它适用于RegExp.exec(string)
:(仅用于第一次匹配?)
var delimiterRegex = new RegExp(/'d(,)'d/g);
console.log(delimiterRegex.exec('3 900,38 zł'))
String.match()
似乎不返回捕获的组,而是返回字符串中的所有匹配项。
中有详细信息https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/match
"match"方法忽略带有"g"-选项的方括号,而使用多个"exec":
var numbers = ["3 900,38 zł", "1.900,00 €", "$100,000.00"],
regexp = /'d(['s','.])'d/g,
results = [], temp = []
for (var i=0; i < numbers.length; i++) {
var numberOfIccurences = (numbers[i].match(regexp) || []).length
temp = []
for (var j = 0; j < numberOfIccurences; j++ ) {
temp.push( regexp.exec( numbers[i] )[1] )
}
results.push( temp )
}
console.log( results )
在这里你可以玩它:https://jsfiddle.net/sdLj5qay/
相关文章:
- 同源策略目的|用户数据与基本页面数据|客户端页面抓取
- VBA正在抓取不在HTML源文件中的生成内容
- 尝试使用Node.js动态路由从IMDB中抓取电影内容.但是在我的output.json文件中没有定义
- 如何从网站上抓取链接和图片
- 用jquery抓取图像SRC-attr
- Javascript Regex-从价格中抓取分隔符
- 使用网络服务器的IP地址而不是域名对其进行屏幕抓取
- Javascript:如何从URL中抓取片段并将其写入一些PHP
- 使用htmlunit抓取动态网页
- 如何抓取URL的一部分并将其粘贴到页面上的某个位置
- Html抓取网站加载错误的J汤Java
- 如何获取网站所有页面的链接以进行数据抓取
- 如何使用AJAX和JSON从一个页面抓取PHP变量到另一个页面
- 我可以使用RubyonRails抓取URL的源代码吗?还是应该使用PHP
- 我如何从一个无限滚动的网站抓取图像,其中api是隐藏的,我无法通过使用Inspect Element获得它->网络
- 淘汰从选项中抓取类
- 在Python中抓取javascript渲染的文本的最快解决方案
- 什么是处理JavaScript的最简单的网络抓取工具
- 使用 jQuery 从选择标签中抓取文本
- JQuery:替换
在抓取.text()时使用分隔符