我如何检查一个字符串是否会使用JS使一个有效的html ID
How do I check if a string would make a valid html ID using JS?
我有一个变量word
,它填充了各种字符串,然后成为新元素的id。我想检查并确保字符串会使一个有效的html ID。我在这个回答中遇到了正则表达式,但我不知道如何把它放在if else语句中。这是我尝试过的:
if (/[A-Za-z][-A-Za-z0-9_:.]*/.test(word) === false)
{
return findIt(i);
}
我尝试了下面的几个解决方案,它们确实有效,但不是完全有效。我相信要么是因为空白,要么是因为引号。我基本上是创建一个完整的随机字符的ID,所以我想正则表达式,只允许字母数字字符串没有引号,没有空白。下面是两者的组合,目前效果不错,但一定有更好的答案。
function isValidId(s) {
return /^[^'s]+$/.test(s);
}
if (isValidId(word)===false){
console.log('bad '+word);
return findIt(i);
}
else if(/^[A-Za-z][-A-Za-z0-9_:.]*$/.test(word) === false)
{
console.log(word+" had junk");
return findIt(i);
}
test()
调用的结果已经足够:
if (/^[A-Za-z][-A-Za-z0-9_:.]*$/.test(word)) {
return findIt(i);
} else {
// Does not match
}
在HTML5中,对ID属性值的唯一限制是它至少包含一个字符并且不包含任何空白,因此以下内容应该完成这项工作:
function isValidId(s) {
return /^[^'s]+$/.test(s);
}
我使用这个小片段:
function (selector) {
return /^(?:#(['w-]+))$/.exec(selector)[1];
}
如果你的字符串不是一个有效的id,它将返回null
,或者它将返回没有哈希的id(它将允许你直接做一个document.getElementById()
)。
来源:sizzlejs。
相关文章:
- 是否有一个JS/jQuery函数可以获取某个类的每个元素的ID
- 我如何制作一个JS函数,它可以从相似的原始颜色双向更改为某个颜色
- 如何将变量传递到另一个js文件
- 我怎么能让流星简单模式中的一个字段等于一个js变量,并且仍然让用户填写简单模式的其余部分
- 如何从onclick函数设置全局变量并将其传递给另一个JS文件
- 从另一个JSAppleScript运行另一个JS AppleScript时出现权限错误
- hapi:包括一个js自定义库
- 我们可以在一个js文件中有多个module.exports语句吗
- Java,nashorn访问另一个js文件
- ajax没有;t成功后调用另一个js函数
- 我上传了客户's服务器一个js函数不起作用
- 另一个.js文件中的函数不起作用
- 如何让一个变量从一个控制器到一个js文件,再到一个渲染的分部
- 如何调用另一个js文件中的函数或触发一个自定义事件,该事件将参数作为Jquery中的数据对象传递
- Nodejs:在节点服务器启动时运行一个js文件
- 我想放一个JS函数,它适用于列表的所有元素,但我可以't将其复制到每个元素中
- 声明一个js变量,该变量将被我的2个jsp访问
- 将一个js变量传递给onkeyup输入文本
- 在另一个.js文件中调用js函数
- MongoDB:如何调用另一个JS文件中定义的函数