使用输入标记时如何保留前导和尾随空格?

MrS*_*eve 6 html angularjs

我正在玩Angular并编写一个Regex测试器.当我输入数据时,问题是导致空白被修剪.请参见示例jsfiddle:

因此,当页面加载时,我有RegEx"^\d + $".test("123")导致"No Match",但是如果你在Candidate框中输入一个额外的前导或尾随空格:

  1. 从我的变量中删除前导和尾随空格
  2. 结果改变了"匹配"

这是我的HTML:

<div id='ng:app' class='ng-app: myApp' ng-app='myApp'>
    <div ng-controller="Controller">{{addTodo2()}}
        <form novalidate class="simple-form">Pattern:
            <input type="text" ng-model="pattern" />Candidate:
            <input type="text" ng-model="candidate" />
            <br />.{{candidate}}.
            <br>.{{candidate2}}.</form>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

这是相关的JavaScript:

function Controller($scope) {
    $scope.pattern = "^\\d+$";
    $scope.candidate  = " 123 ";
    $scope.candidate2 = " 123 ";
    $scope.addTodo2 = function () {
        var str = "Javascript is an interesting scripting language";
        var re = new RegExp($scope.pattern, "g");

        var result = re.test($scope.candidate);
        if (result) {
            return "Match22";
        } else {
            return "No Match22";
        };
    };

  }
var myapp = angular.module('myApp', []);
Run Code Online (Sandbox Code Playgroud)

sha*_*ain 12

更新了小提琴,将ng-trim ="false"添加到输入标签

http://jsfiddle.net/T2zuV/12/

<div id='ng:app' class='ng-app: myApp' ng-app='myApp'>
    <div ng-controller="Controller">{{addTodo2()}}
        <form novalidate class="simple-form">Pattern:
            <input type="text" ng-model="pattern" ng-trim="false"/>Candidate:
            <input type="text" ng-model="candidate" ng-trim="false"/>
            <br />.{{candidate}}.
            <br>.{{candidate2}}.</form>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)