word = word.replace(/^[^a-zA-Z0-9]+/, '');
word = word.replace(/[^a-zA-Z0-9]+$/, '');
word = word.replace(/^Bug#/i, '');
+ word = word.replace(/^#/, '');
} while ( oldword != word );
return word;
function check_likely_inputs(q) {
let cnt = document.getElementById('button-list-container').classList;
- cnt.remove('like-b', 'like-p', 'like-m', 'like-i');
+ cnt.remove('like-b', 'like-p', 'like-m', 'like-i', 'like-s');
document.querySelectorAll('.likely')
.forEach((el) => {
el.classList.remove('likely');
});
- if ( /^\d+$/.test(q) || /^CVE-/.test(q) )
+ q = q.replace(/^\s+/, '');
+ q = q.replace(/\s+$/, '');
+
+ if ( /^#?\d+$/.test(q) || /^CVE-/.test(q) )
cnt.add('like-b');
if ( /^[a-z0-9][a-z0-9\-+.]+$/.test(q) )
if ( /^<.+@.+>$/.test(q) )
cnt.add('like-i');
- document.querySelectorAll('.like-b .hint.b, .like-p .hint.p, .like-m .hint.m, .like-i .hint.i')
+ if ( /^d[sl]a[- ]\d+(-\d+)?$/i.test(q) )
+ cnt.add('like-s');
+
+ document.querySelectorAll('.like-b .hint.b, .like-p .hint.p, .like-m .hint.m, .like-i .hint.i, .like-s .hint.s')
.forEach((el) => {
el.parentElement.parentElement.classList.add('likely');
} );
}
-function get_clipboard_contents() {
- let clip_pot = document.getElementById('clip-pot');
+function react_to_clipboard_text(text) {
let clip_input = document.getElementById("clipboard");
- clip_pot.focus();
- if (document.execCommand("Paste")) {
- let q = clip_pot.textContent.trim();
- clip_input.value = q;
- clip_input.focus();
- clip_input.setSelectionRange(0, clip_input.value.length);
-
- check_likely_inputs(q);
+ clip_input.value = text;
+ clip_input.focus();
+ clip_input.setSelectionRange(0, clip_input.value.length);
+
+ check_likely_inputs(text);
+}
+
+function get_clipboard_contents() {
+ if (navigator.clipboard && navigator.clipboard.readText) {
+ navigator.clipboard.readText().then(function(q){
+ react_to_clipboard_text(q);
+ });
+ }
+ else {
+ let clip_pot = document.getElementById('clip-pot');
+ let clip_input = document.getElementById("clipboard");
+ clip_pot.focus();
+ if (document.execCommand("Paste")) {
+ let q = clip_pot.textContent.trim();
+ react_to_clipboard_text(q);
+ }
}
}
window.requestAnimationFrame(get_clipboard_contents);
});
});
+
+// vim: sw=2