如何删除div Javascript中文本的最后几个字符?

时间:2018-10-10 07:48:45

标签: javascript

尝试锻炼如何使用Javascript从div内的文本中删除最后几个字符。

EG: '37  John  Street, Suburb   ABC  20111'

to display: '37  John  Street, Suburb'

我使用了下面的代码,但是某些文本具有多个空格,因此除非从末尾算起不包括空格的8个字符,否则它将无法始终如一地工作。我所知道的唯一一致的是3个字符的状态和5个字符的邮政编码,因此“ ABC20111” = 8。

<script>
$('#divText').text(function (_,txt) {

    return txt.slice(0, -8);
});
</script>

有人可以帮忙吗?

5 个答案:

答案 0 :(得分:0)

根据其他字符串的外观,您可以在,上拆分字符串并获得第一部分。

$('#divText').text(function (_, txt) { return txt.split(/,/)[0]; });

答案 1 :(得分:0)

另一种方法是使用正则表达式将所有多个空格替换为一个空格,例如:

$('#divText').text(function (_,txt) {
   txt = txt.replace(/\s\s+/g, ' ');
   return txt.slice(0, -8);
});

这样,如果您还希望结尾的空格也可以使用trim,则可以始终从末尾开始计数:

$('#divText').text(function (_,txt) {
  txt = txt.replace(/\s\s+/g, ' ').trim();
  return txt.slice(0, -8);
});

答案 2 :(得分:0)

我认为您可以使用javascript split函数

示例:

var str = '37  John  Street,  Suburb  20111'
var array = str.split(",");
print(array);

输出:[37 John Street,Suburb 20111]

答案 3 :(得分:0)

下面您将看到如何获取所需文本的逻辑。当然,您需要对其进行转换以适合您的情况。

let original_text = '37  John  Street,  ABC  20111'
let text_converted_to_array = original_text.split(' ')
let wanted_text = text_converted_to_array.slice(0, -1).join(' ')
console.log(wanted_text); // outputs:=> 37  John  Street,  ABC

答案 4 :(得分:0)

这是您可以使用的正则表达式:

$('#divText').text(function (_,txt) {
    return txt.replace(/,.*[a-z]{3}.*[0-9]{5}/i,'');
});

实际上,我只是在此页面上使用过它,但是将#divText替换为prettyprint,并删除了原始帖子示例中的字符。

正则表达式的解释:

  • ,.*删除逗号和任何空白字符(但是如果需要,可以删除此字符)
  • [a-z]{3}删除状态的三个字母字符
  • .*删除所有字符,直到...
  • [0-9]{5}删除5个数字字符。
  • \i使正则表达式不区分大小写。