javascript - 如何获取 JQuery 提交函数中输入标记的原始值?

标签 javascript jquery html regex encoding

我有一个带有输入框和按钮的 HTML 表单。我在其上绑定(bind)了一个提交事件,但是当我尝试将输入框的值与正则表达式 (/\w+/) 匹配时,我得到不一致的结果:

1) 看起来它将值更改为 URI 编码字符(例如,它用 + 替换空格)。
2) 即使它将值更改为 URI 编码字符,正则表达式 (/\w+/) 怎么可能匹配 + 或其他非字母数字符号?

如何获取原始值?

我的 JQuery 代码:

$('#form-send-username').on('submit', registrationFormListener);
function registrationFormListener(event) {
    event.preventDefault();
    console.log($('#user-input-box').val());          // Print raw value
    if($('#user-input-box').val().match(/\w+/)) {     // Even matches non-alphanumeric characters
        ...
    }
}

最佳答案

您当前的正则表达式/\w+/仅检查字符串中是否存在一个*单词字符。

* \w+ 匹配一个或多个单词字符,但只要字符串中有一个单词字符,就能找到匹配项,从而验证通过。

您需要使用 ^ (字符串开头)和 $ (字符串结尾)锚定正则表达式,以确保整个字符串由单词字符组成:

/^\w+$/

关于javascript - 如何获取 JQuery 提交函数中输入标记的原始值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21128878/

相关文章:

javascript - Vue 计算属性返回一个 promise ?

javascript - 将 Google Drive API 与 Javascript 原型(prototype)结合使用

javascript - 尝试在javascript中将数组拆分为指定数量的子数组

html - 固定底部不适用于有溢出的父级

javascript - Sidr 多个不同内容的菜单

javascript - 为什么我无法在 Backbone 中触发成功回调?

jquery - 如何在悬停时在每个 img 标签上叠加 png

javascript - 如何将样式应用于 jquery 自动完成下拉列表

javascript - Bootstrap 4 Scrollspy 未在滚动条上指示

html - Apple 主题的导航菜单栏 CSS 问题