Javascript 使用AngularJs计算不带空格的字符

Javascript 使用AngularJs计算不带空格的字符,javascript,angularjs,Javascript,Angularjs,我需要计算带空格和不带空格的文本的字符数 这是我的尝试,但只计算第一个空格的文本 <div style="max-width:80%; margin: 10px auto"> <section class="row" ng-app=""> <div class="col-lg-8"> <div class="panel panel-default"> <div class="panel-head

我需要计算带空格和不带空格的文本的字符数

这是我的尝试,但只计算第一个空格的文本

<div style="max-width:80%; margin: 10px auto">
<section class="row" ng-app="">
    <div class="col-lg-8">
        <div class="panel panel-default">
            <div class="panel-heading">Paste your text for <b>words count</b></div>
            <div class="panel-body">
                <textarea class="form-control" rows="10" ng-model="wordcounter"></textarea>
            </div>
        </div>
    </div>
    <div class="col-lg-4">
        <div class="panel panel-default">
            <div class="panel-heading">Words and characters</div>
            <ul class="list-group">
                <li class="list-group-item">Characters (with space)<span class="badge">{{wordcounter.length}}</span></li>
                <li class="list-group-item">Characters (no space)<span class="badge">{{wordcounter.replace(" ","").length}}</span></li>
            </ul>
        </div>

    </div>
</section>

粘贴文字以进行字数统计
文字
    字符(带空格){{wordcounter.length} 字符(无空格){{wordcounter.replace(“,”).length}

只能替换一个空格 没有正则表达式 问题是,当前只替换一个空格,而不是字符串中的所有空格。解决此问题的一种方法是将字符串按字符串
str.split(“”)中的所有空格拆分然后将它们连接在一起。(用
join
将单词再次粘在一起,不留空格)

更改没有空格的计数器的绑定,如
{{wordcounter.split(“”.join(“”.length}}

 <div style="max-width:80%; margin: 10px auto">
    <section class="row" ng-app="">
<div class="col-lg-8">
    <div class="panel panel-default">
        <div class="panel-heading">Paste your text for <b>words count</b></div>
        <div class="panel-body">
            <textarea class="form-control" rows="10" ng-model="wordcounter"></textarea>
        </div>
    </div>
</div>
<div class="col-lg-4">
    <div class="panel panel-default">
        <div class="panel-heading">Words and characters</div>
        <ul class="list-group">
            <li class="list-group-item">Characters (with space)<span class="badge">{{wordcounter.length}}</span></li>
            <li class="list-group-item">Characters (no space)<span class="badge">{{wordcounter.split(" ").join("").length}}</span></li>
        </ul>
    </div>

</div>

粘贴文字以进行字数统计
文字
    字符(带空格){{wordcounter.length} 字符(无空格){{wordcounter.split(“”.join(“”.length}}

您可以使用正则表达式来获取选项卡等


替换(/\s/g,“”)

您还可以使用角度自定义过滤器来完成此操作

angular.module(“app”、[“core”]);
角度模块(“核心”,[]);
角度.module(“core”).filter('count',function(){
返回函数(输入,输入空间){
输入=输入| |“”;
return incSpace?input.length:input.replace(/\s/g',).length;
};
});

粘贴文字以进行字数统计
文字
  • 字符(带空格){{wordcounter | count:true}
  • 字符(无空格){{wordcounter | count:false}

我不明白你的问题:/@DylanMeeus“这是一个示例”:18个字符包括空格“这是一个示例”:14个字符不包括空格,但我的脚本返回17,表示第二个条件是正确的。如果包含空格,则为18个字符。哦,但现在我明白了,“没有空间”是wrong@DylanMeeus确切地说,您需要使用正则表达式替换字符串中的所有空格。尝试下面的代码
wordcounter。替换(/\s/g')。length
将为您提供无空格的长度,您可以尝试此处和@Dylan Meeus答案中描述的拆分连接方式