JavaScript在文本中找到未知数字

时间:2017-09-13 13:07:18

标签: javascript full-text-search

好的,所以我有一些不同的文本位,我需要找到一些关键数字

例如以下文字:

  

Ankenævnethadvedtaget atnedsættedenaftalte leje fra 120.000 kr。 svarende直到1.363 kr。 PR。 m²直到92.400 kr。 svarende直到1.050 kr。 PR。平方米。 Den godkendte leje inkluderer vand。 Herudoverkanopkrævesaconto varmebidrag。

现在我需要在这里找到的关键数字是1.0501.363

然而,文本可能会有所不同,但有一点可以肯定它总是这样格式化:

number kr. pr. m^2

所以我的问题是如何才能得到这些数字?

文字的另一个例子

  

Ejendommen,hvorilejemåleterbeliggende,eropført1970。   Bruttoetagearele er efter lejekontrakten og BBR 61 m2。 Denårlige   leje svarer直到1.180 kr。 PR。 m2 ved 61 m2。 Lejer har den indvendige   vedligeholdelsespligt。 Det lejede er overaget nyistandsat ved   indflytningen og skal afleveres ligeledes nyistandsat ved   fraflytningen。 Lejemåletophørermedudgangen af marts 2013年。

3 个答案:

答案 0 :(得分:1)

试试这个正则表达式:

/[0-9.]{1,} kr. pr. m[\D\d]/g

[0-9.]它开始数字0-9或。和{1,}一次或多次kr. pr. m,最后一位[\D\d]可以是²或2  / g表示它在整个内容中搜索:

<强>用法:

var str = "Ankenævnet har vedtaget at nedsætte den aftalte leje fra 120.000 kr. svarende til 1.363 kr. pr. m² til 92.400 kr. svarende til 1.050 kr. pr. m². Den godkendte leje inkluderer vand. Herudover kan opkræves a conto varmebidrag.Ejendommen, hvori lejemålet er beliggende, er opført i 1970. Bruttoetagearealet er efter lejekontrakten og BBR 61 m2. Den årlige leje svarer til 1.180 kr. pr. m2 ved 61 m2. Lejer har den indvendige vedligeholdelsespligt. Det lejede er overtaget nyistandsat ved indflytningen og skal afleveres ligeledes nyistandsat ved fraflytningen. Lejemålet ophører med udgangen af marts måned 2013."
var regex = /[0-9.]{1,} kr. pr. m[\D\d]/g
var elements = str.match(regex);
console.log(elements)
您将获得一个包含匹配字符串的数组

答案 1 :(得分:-1)

使用此regex:[+ - ]?([0-9] * [。])?[0-9] + kr。 PR。平方米

Dim pricebox = New TextBox
Dim qtybox = New TextBox
pricebox = CType(Me.Controls("TextBox" + CStr(i)), TextBox)
qtybox = CType(Me.Controls("TextBox" + CStr(j)), TextBox)

答案 2 :(得分:-1)

正则表达式是按模式查找字符串部分的最简单方法。

我建议您使用正则表达式构建器,如:https://regexr.com/3go7t

function findKvadratMeterPriser(tekst) {
  var regularExpression = /(\s|^)(\d)+((\.|,)*(\d)*)* kr\. pr\. m/gi;
  var results = [];
  tekst.replace(regularExpression, function handlePart(value) {
    var findNummer = /(\d)+((\.|,)*(\d)*)*/gi;
    results.push(findNummer.exec(value)[0]);
    return value;
  });
  return results;
}
console.log(findKvadratMeterPriser("Anken\u00E6vnet har vedtaget at neds\u00E6tte den aftalte leje fra 120.000 kr. svarende til 1.363 kr. pr. m\u00B2 til 92.400 kr. svarende til 1.050 kr. pr. m\u00B2. Den godkendte leje inkluderer vand. Herudover kan opkr\u00E6ves a conto varmebidrag."));
console.log(findKvadratMeterPriser("Ejendommen, hvori lejem\u00E5let er beliggende, er opf\u00F8rt i 1970. Bruttoetagearealet er efter lejekontrakten og BBR 61 m2. Den \u00E5rlige leje svarer til 1.180 kr. pr. m2 ved 61 m2. Lejer har den indvendige vedligeholdelsespligt. Det lejede er overtaget nyistandsat ved indflytningen og skal afleveres ligeledes nyistandsat ved fraflytningen. Lejem\u00E5let oph\u00F8rer med udgangen af marts m\u00E5ned 2013."));