javascript正则表达式验证一个变量,然后捕获该变量
javascript regex verify a variable then capture that variable
我想我应该重写它并添加一点上下文(这样更容易向我解释)。
Basicaly我正在捕捉带有popstate事件的后退/前进按钮,如下所示:
window.addEventListener("popstate", function(e) {
curstate = window.location.href ;
然后使用switch语句根据新状态确定要做什么:
switch (curstate) {
case 'http://mydomain.com/':
navi('about', 200);
break;
case 'http://mydomain.com/resume':
navi('resume', 200);
break;
};
});
当状态为mydomain.com/portfolio/whatever-时,问题就出现了
我需要一个案例:从mydomain.com/portfolio/(捕获uri的这一位)开始:然后将捕获的位放在变量中,例如currentpage = capturedbitofuri
。
// returns an array on success or null on failure
var match = /^mydomain'.com'/portfolio'/(.*)/.exec(str);
if (match) {
// match[1] contains the group (.*), which is everything after the prefix
return match[1];
}
相当简单:/^mydomain'.com'/portfolio'/(.*)/
/
字符必须转义,因为我们使用/
作为模式的分隔符。
模式开头的^
表示字符串必须以"mydomain…"开头。
最后,.*
的意思是"任何东西",而它周围的( )
的意思则是"在比赛中捕捉到这一点"。
至于使用它,请在JS 101中阅读regex,它将为您提供regex的良好介绍:)
您甚至不需要regex。你所需要的只是.indexOf和.substring.
if (curstate === 'http://mydomain.com/') {
navi('about', 200);
} else if (curstate === 'http://mydomain.com/resume')
navi('resume', 200);
} else if (curstate.indexOf('http://mydomain.com/portfolio') > -1) {
var base = 'http://mydomain.com/portfolio';
portfoliosection = curstate.substr(base.length + 1, curstate.length);
}
相关文章:
- 如何从单选按钮中获取多个值,然后将它们分配到单个变量中并在页面上显示
- 在Django中,可以在视图中创建一个包含js的变量,然后在循环模板标记中使用它
- 使用变量的名称,然后为该变量定义函数
- 在变量中保存值的最佳方法是在应用程序关闭后使用,然后使用apachecordova在android中重新启动
- 等待函数完成,然后将返回值分配给变量JS
- 如何更改javascript的一个变量,然后运行;“加载”;而无需重新加载页面
- 通过 AJAX 调用 PHP 文件,将 $_GET 变量传递到 MySQL 查询中,然后回显到响应中
- 为什么我们被教导将document.getElementById(“id”)分配给一个变量,然后将该变量与属性一起使用
- 流星技术/模式,用于等待数据库变量更改,然后在 in 之后执行某些操作
- 用我的名字创建一个变量.然后提醒字符串“hello-from”加上我创建的变量
- 从数组中删除元素,然后保留其状态以备将来使用,而不使用全局变量
- node.js将接收到的字符串拆分为不同的变量,然后格式化为json字符串
- 通过用户输入更改变量的值,然后在其他页面上重新使用
- C#WebBrowser控件-使用DOM创建和修改javascript变量,然后使用Applet读取它
- 将生成的随机数存储在变量中,然后将该变量作为文件名调用以显示图像.Javascript
- Javascript 返回过去 6 个月,然后将每个月用作变量
- 设置变量 if..然后是JavaScript
- 等到元素存在,循环,然后存储在变量中
- 如何将变量设置为文本输入,然后使其显示在屏幕上
- Javascript检查变量.然后每秒获得++