正则表达式在JavaScript和AngularJS中不匹配,有ng更改
Regular Expression not matching in JavaScript and AngularJS with ng-change
我试图在这个页面中获取我的路径变量,以在用户输入时更改空格和标点符号
<!doctype html>
<html lang="en-US" ng-app>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width">
<title>ng-change</title>
<link rel="stylesheet" type="text/css" href="mystyle.css" media="all"/>
<script type="text/javascript" src="angular_1.0.7.js"></script>
</head>
<body>
<div class="browser" ng-controller="Browser">
<!--Mock browser URL-->
<div class="url">
← → ∞
<input type="text" value="edit/{{ path }}"/>
</div>
<!--Input field for the page, mock page-->
<div class="page">
<label for="update">
Update the URL:
<input ng-change="clean()" ng-model="path"/>
</label>
</div>
</div>
<script type="text/javascript" src="script.js"></script>
</body>
</html>
然而,当我输入任何内容时,都不会发生任何事情。这是script.js文件:
var Browser = function ($scope) {
$scope.clean = function () {
$scope.path = $scope.path
.replace("/'s+/g", "-")
.replace("/[^a-z0-9-]/i", "");
console.log($scope.path);
};
};
我很确定我的javaScript做对了,但我不知道为什么我的应用程序不工作,我试着调试它,问题似乎是ng-change
只认为它是一个变化,当放入空格以外的字符时,无论何时放入空格,它都会忽略它们。
您的"正则表达式"是字符串,而不是正则表达式对象。创建regex对象的两种方法是:
new RegExp("regex string", "flags")
// and
/regex stuff/flags
从代码.replace("/'s+/g", "-")
中删除引号,使其成为.replace(/'s+/g, "-")
。
.replace()
方法确实接受字符串(以及正则表达式),但尝试查找该确切文本的第一个出现,而不是在字符串中使用正则表达式。
参考文献:
- 正则表达式-https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions
.replace()
-https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace
相关文章:
- ng更改事件不适用于Dropdown
- ng更改函数未被调用,并且没有错误
- 让ng更改等待$watch完成
- 如何使用AngularJS的ng更改
- 如何在ng重复中动态创建ng更改
- AngularJS触发ng更改不起作用
- 单击ng更改列表项的活动bg颜色
- 指令中的循环和ng更改Angular JS
- ng-更改以与以前的值进行比较
- 为预先选中的复选框在加载时运行ng更改函数
- Angular:$scope有效,但“;控制器为“;不触发ng更改事件
- ng更改后,从控制器重置ng模型值
- 在angularjs复选框输入中更新ng模型或执行ng更改之前需要确认
- 日期选择器的ng更改问题
- 在选择标记中的 ng 更改上重定向
- 自动检查单选按钮并执行 ng 更改
- 加载时触发 ng 更改
- ng更改无法使用单选按钮
- ng更改未从标签内的复选框中激发
- 单击ng更改JSON调用